diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..40adec57 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +paper/*.pdf +paper/*.bbl +paper/*.log +paper/*.html +paper/*.blg +paper/*.aux +paper/*.out diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..b4aba77e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "paper/desc-tex"] + path = paper/desc-tex + url = https://github.com/LSSTDESC/desc-tex.git diff --git a/paper/Makefile b/paper/Makefile new file mode 100644 index 00000000..386d8d23 --- /dev/null +++ b/paper/Makefile @@ -0,0 +1,50 @@ +ROOT = paper + +PLOTS = results/edge_comparison.pdf \ + results/g_band_loss.pdf \ + results/metric_comparisons.pdf \ + results/tables/table_FOM_DETF_3x2_dc2.tex \ + results/initial_data.pdf \ + results/colour_colour.pdf \ + results/nzbinned_dc2_funbins.pdf \ + results/nzoverlap_dc2_funbins.pdf \ + results/metric_grid_dc2_griz.pdf \ + results/metric_grid_dc2_riz.pdf \ + results/metric_grid_buzzard_griz.pdf \ + results/metric_grid_buzzard_riz.pdf \ + results/rank_grid.pdf \ + results/9bin_dc2.tex \ + results/9bin_buzzard.tex + +# for bibliography tests +BIB = $(ROOT).bib +TEX := $(ROOT).tex +PDF := $(ROOT).pdf +AUTH = authors2.tex + + +all: $(PDF) + +$(PDF): $(TEX) $(BIB) $(AUTH) + pdflatex $(ROOT) + bibtex $(ROOT) + bibtex $(ROOT) + pdflatex $(ROOT) + pdflatex $(ROOT) + pdflatex $(ROOT) + +plots: $(PLOTS) + +arxiv.tar.gz: $(TEX) + tar -zvcf arxiv.tar.gz $(PLOTS) $(AUTH) $(TEX) $(ROOT).bbl apjfonts.sty aasjournal.bst openjournal.cls + +results/%.pdf: results/make_figures.py + cd results; python3 make_figures.py + +results/tables/%.tex: results/make_figures.py + cd results; python3 make_figures.py + +clean: + rm -f $(ROOT).bbl $(ROOT).aux $(ROOT).blg $(ROOT).out $(ROOT).log $(ROOT).pdf texput.log + +.PHONY: plots all diff --git a/paper/aasjournal.bst b/paper/aasjournal.bst new file mode 100644 index 00000000..68d2dcf9 --- /dev/null +++ b/paper/aasjournal.bst @@ -0,0 +1,1801 @@ +%% AASJournal.bst June 3, 2019 +%% +%% Revision 1.18 2019/6/3 Amy Hendrickson +%% Took out `v' preceding version number in @misc +%% +%% Rewrote format.pid to implement this precedence: +%% if doi, print that, if eprint print that, if neither +%% and there is a url, use the url + +%% Took out format.url output generally because it is included in format.pid, +%% so undesirable to call for it a second time. + +%% +%% Revision 1.17 2019/3/15 Amy Hendrickson +%% Added DOI to every field where format.url was found. Kept format.url in case +%% it is needed. +%% + +%% Revision 1.16 2017/10/26 Amy Hendrickson +%% `url' only active when used in misc +%% +%% `note' is disabled in all cases; as is adsnote and adsurl. +%% +%% Repair to @misc call to aaspublisher to prevent `, ,' +%% when there is no publisher listed. +%% +%% Make correct hyperlinked content for doi, ascl, and arXiv; +%% changed definition of FUNCTION {format.eprint} to compare +%% archivePrefix with "arXiv" and when they match do +%% ' {new.block "\doarXiv{" eprint * "}" * } +%% otherwise do +%% ' {new.block "\doeprint{" eprint * "}" * } +%% +%% \dodoi, \doarXiv and \doeprint definitions are sent to the top of the .bbl file +%% with commands found in FUNCTION {begin.bib}. +%% +%% bbl.version no longer used, could be deleted. +%% +%% Version number is added when author enters: version = {number}, only in `misc' +%% +%% Removed `format.doi output' in {article} because in +%% combination with { format.pid output } we could get double doi entries +%% in the bibliography. +%% +%% Rewrote format.pid so that we can check to see if we have a doi number; in +%% which case we use that and suppress the arXiv and eprint combination. However, +%% we do Not eliminate the url field if the author has entered it. +%% +%% Deleted format.miscversion and made a simplified way to produce version in @misc +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Revision 1.15 2016/10/5 Amy Hendrickson +%% Changed bbl.version so that there is no longer a trailing `.' + +%% Revision 1.14 2016/9/14 Amy Hendrickson +%% Added URL field + +%% Revision 1.13 2016/8/9 Amy Hendrickson +%% Change to presort and bibsort to get multiple entries with same author/year +%% combination to be ordered in bibliography in same order as \cite{}s entered in text. + +%% Revision 1.12 2016/2/11 Amy Hendrickson +%% Changes to @misc function to specifications by Dr. August Muench. +%% Made comma appear between title and publisher whether or not there is a version number. + +%% Revision 1.11 2015/12/31 Amy Hendrickson +%% Changes to @misc function to specifications by Dr. August Muench. +%% Added version and publisher fields. + +%% Revision 1.10 2013/03/11 13:01:55 alberto +%% Reworked code to use format.pid for articles without proper +%% pagination which then leads the system to use either an eprint +%% id or a DOI; this will solve most problems with citing early +%% access articles (no volume of page available, but online). +%% Removed bibliography count from preamble since it seems to +%% confuse some versions of latex. +%% +%% Revision 1.9 2013/2/19 Erik Tollerud +%% fixes for spurious error messages due to rev 1.8 changes +%% also fixed missing publisher field printing in "book" +%% +%% Revision 1.8 2013/01/10 16:31:34 alberto +%% Added proper formatting of arXiv eprint entries output by ADS +%% (these are article records, but the eprint id is printed only +%% if no traditional page number is available). Also added support +%% for ASCL entries under the "misc" category. +%% +%% Revision 1.7 2011/11/21 13:10:12 alberto +%% Implemented new ApJ formatting rules: for papers with more than +%% 5 authors, print first 3 followed by "et al." +%% +%% Revision 1.6 2009/05/18 15:13:02 alberto +%% Fixed sorting of references with truncated lists of authors +%% in sort.format.names +%% Fix courtesy of Stephen Fegan +%% +%% Revision 1.5 2009/03/19 13:15:11 alberto +%% Truncate \bibitem entries with more than 8 authors. +%% Fix courtesy of Craig Wiegert +%% and Andrew R. Marble +%% +%% Revision 1.4 2002/06/18 16:37:48 alberto +%% Add comma after first author in two-author reference +%% Fix courtesy of Tim Robishaw +%% +%% Revision 1.3 2000/04/20 22:17:50 jbaker +%% Fixed INBOOK bug, now works essentially like BOOK. +%% +%% Revision 1.2 1998/08/30 22:35:45 jbaker +%% Added RCS keywords. +%% +%% 1998/08/12 J Baker +%% Tweaked by hand to get correct results for ApJ. Added functions from +%% astrobib. + + +%% +%% This originally was file `apj.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,ay,nat,nm-rev,nmdash,dt-beg,yr-per,note-yr,atit-u,jtit-x,jttl-rm,thtit-a,vnum-x,volp-com,jpg-1,pp-last,btit-rm,add-pub,pub-par,pre-edn,edby,edbyx,blk-com,fin-bare,ppx,ed,abr,ord,jabr,amper,em-x') +%% ---------------------------------------- +%% *** Bibliographic Style for ApJ *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994-98 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + archivePrefix + author + booktitle + chapter + doi + edition + editor + eprint + howpublished + institution + journal + key + month + number + organization + pages + publisher + school + series + title + misctitle + type + volume + year + version + url + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ skip$ } + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "Vol." } + +FUNCTION {bbl.version} +{ "" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "Ch." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "PhD thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +INTEGERS { nameptr namesleft numnames numtrunc } + +FUNCTION {format.names} +{ 's := + #0 'numtrunc := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + numnames #5 > + { #3 'numtrunc := } + {} + if$ + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ + 't := + nameptr #1 > + { + nameptr #1 - numtrunc = + { + #1 'namesleft := + "others" 't := + } + {} + if$ + + namesleft #1 > + { ", " * t * } + { + numnames #1 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " {et~al.}" * + } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " {et~al.}" * + } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " {et~al.}" * + } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "\url{" url * "}" * } + if$ +} + +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { archivePrefix empty$ + { "" } + { archivePrefix "arXiv" = + {new.block "\doarXiv{" eprint * "}" * } + {new.block "\doeprint{" eprint * "}" * } + if$} + if$ + } + if$ +} + +% Formats a persistent identifier (PID) +% (typically a DOI or an eprint id) +% You can easily swap the order of which PID +% gets picked +% + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "\dodoi{" doi * "}" * } + if$ +} + +FUNCTION {format.pid} +{ doi empty$ +{eprint empty$ + { url empty$ + { "" } + { format.url } + if$} + { format.eprint } + if$} + { format.doi } + if$ +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + extra.label * + before.all 'output.state := + after.sentence 'output.state := +} + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check +% { bbl.pages pages n.dashify tie.or.space.connect } +% { bbl.page pages tie.or.space.connect } + { pages n.dashify } + { pages } + if$ + } + if$ +} + +FUNCTION {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages first.page * + } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + editor num.names$ #1 > + { bbl.editors } + { bbl.editor } + if$ + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + "" + address empty$ publisher empty$ and + 'skip$ + { + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + ")" * + } + if$ + output +} + +FUNCTION {format.aaspublisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + ", " + address empty$ publisher empty$ and + 'skip$ + { + add.blank "" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + "" * + } + if$ + output +} + + + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { "---" } + { s 'oldname := s } + if$ + } + if$ +} + +%%%%%%%% Functions added from astrobib + +FUNCTION {format.edn.btitle} % Title should be on stack. +{ duplicate$ empty$ edition empty$ or + 'skip$ + { ", " * format.edition * } + if$ +} + +FUNCTION {format.ed.booktitle} % The title should be on the stack. +{ duplicate$ empty$ + { "no book title in " cite$ * warning$ "" pop$ } + { editor empty$ + author empty$ or % Empty author means editor already given. + 'format.edn.btitle + { format.edn.btitle ", " * bbl.editor * " " * format.in.editors * } + if$ + } + if$ +} + +FUNCTION {format.full.book.spec} % The title should be on the stack. +{ series empty$ + { format.ed.booktitle + volume empty$ + { number empty$ + 'skip$ + { " there's a number but no series in " cite$ * warning$ + " No." number tie.or.space.connect * } + if$ + } + { ", Vol." volume tie.or.space.connect * + number empty$ + 'skip$ + {"Both volume and number fields in " * cite$ * warning$ } + if$ + } + if$ + } + { volume empty$ + { format.ed.booktitle ", " * series * + number empty$ + 'skip$ + { " No." number tie.or.space.connect * } + if$ + } + { series ", Vol." volume tie.or.space.connect * + ", " * swap$ format.ed.booktitle * + number empty$ + 'skip$ + {"Both volume and number fields in " * cite$ * warning$ } + if$ + } + if$ + } + if$ +} + +%%%%%%% End of functions from astrobib + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + crossref missing$ + { journal + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + pages empty$ + 'skip$ + { format.journal.pages } + if$ + format.pid output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + title format.full.book.spec output +% format.btitle "title" output.check +% crossref missing$ +% { format.bvolume output +% format.number.series output +% format.edition output + format.publisher +% } +% { +% format.book.crossref output.nonnull +% } +% if$ + format.pages output + format.pid output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + howpublished output + address output + format.pid output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + title format.full.book.spec output +% format.btitle "title" output.check +% crossref missing$ +% { +% format.bvolume output +% format.chapter.pages "chapter and pages" output.check +% format.number.series output +% format.edition output + format.publisher +% } +% { +% format.chapter.pages "chapter and pages" output.check +% format.book.crossref output.nonnull +% } +% if$ + format.pages "pages" output.check + format.pid output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + bbl.in " " * booktitle format.full.book.spec * output +% crossref missing$ +% { format.in.ed.booktitle "booktitle" output.check +% format.bvolume output +% format.number.series output +% format.edition output +% format.chapter.pages output + format.publisher +% } +% { format.incoll.inproc.crossref output.nonnull +% format.chapter.pages output +% } +% if$ + format.pages "pages" output.check + format.pid output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + format.date "year" output.check + date.block + bbl.in " " * booktitle format.full.book.spec * output +% crossref missing$ +% { format.in.ed.booktitle "booktitle" output.check +% format.bvolume output +% format.number.series output + publisher empty$ + { organization output + address output + } + { organization output + format.publisher + } + if$ +% } +% { format.incoll.inproc.crossref output.nonnull +% } +% if$ + format.pages output + format.pid output + fin.entry +} + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + organization output + address output + format.pid output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block +% format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.pid output + fin.entry +} + +FUNCTION {misc} +{output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block +%% new + format.title output +%% new + version empty$ + 'skip$ + {bbl.version version * output} + if$ +%% + howpublished output + publisher empty$ + {} + {format.aaspublisher} + if$ + format.pid output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block +% format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.pid output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output + organization format.key output } + { format.editors output } + if$ +% format.editors output +% editor format.key output + name.or.dash + format.date "year" output.check + date.block + title format.full.book.spec output +% format.btitle "title" output.check +% format.bvolume output +% format.number.series output + publisher empty$ not % No need for warning if no pub. + { format.publisher } + { editor empty$ % For empty editor, organization was already given. + 'skip$ + { organization output } + if$ + address output + } + if$ +% address output +% organization output +% publisher output + format.pages output + format.pid output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.pid output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block +% format.title "title" output.check + format.pid output + fin.entry +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " {et~al.}" * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " {et~al.}" * + } + { " \& " * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames #8 > + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + t sortify * + " " * + "zzzzz" * + } + { numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * +%% August 2016 +%% commenting out this combination gets the cites right but references wrong +%% title field.or.null +%% sort.format.title +%% * +%% +%% with only this line on, we get cites right but references wrong + sort.format.title + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * +%% Commented out August 2016, so that multiple indentical author/year +%% combinations are entered in the order that \cite{}s are found in text. +% title field.or.null +% sort.format.title +% * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\providecommand{\url}[1]{\href{#1}{#1}}" + write$ newline$ + "\providecommand{\dodoi}[1]{doi:~\href{http://doi.org/#1}{\nolinkurl{#1}}}" + write$ newline$ + "\providecommand{\doeprint}[1]{\href{http://ascl.net/#1}{\nolinkurl{http://ascl.net/#1}}}" + write$ newline$ + "\providecommand{\doarXiv}[1]{\href{https://arxiv.org/abs/#1}{\nolinkurl{https://arxiv.org/abs/#1}}}" + write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `aasjournal.bst'. \ No newline at end of file diff --git a/paper/aastex63.cls b/paper/aastex63.cls new file mode 100644 index 00000000..1cb6f0d7 --- /dev/null +++ b/paper/aastex63.cls @@ -0,0 +1,7536 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% AASTEX63.cls %% +%% July 8, 2019 (6:15pm) %% +%% Copyright 2019 American Astronomical Society %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\currversion{6.3} + +%% +%% These files are distributed +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~}% +%% +%%% date = "9/19/2016", +%%% author = "Amy Hendrickson (mailto:amyh@texnology.com)" +%%% including +%%% 1) code from emulateapj.cls, version 01/23/15(marked below) +%%% written by Alexey Vikhlinin, which relies on RevTeX4-1 +%%% for much functionality; +%%% 2) some code from aastex (marked below) +%%% 3) Original work by Amy Hendrickson (marked below) for +%%% extensive table tools, including easy decimal entry and splitting +%%% tables horizontally into 2 or 3 pieces, for tabular and deluxetable +%%% environments; rotate tables; gridlines for use in positioning figures, +%%% track changes. + +%%% This work may be distributed and/or modified under the +%%% conditions of the LaTeX Project Public License, either version 1.3c +%%% of this license or (at your option) any later version. +%%% The latest version of this license is in +%%% http://www.latex-project.org/lppl.txt +%%% and version 1.3 or later is part of all distributions of LaTeX +%%% version 2005/12/01 or later. +% +%%% This work has the LPPL maintenance status `maintained'. +% +%%% The Current Maintainer of this work is Greg Schwarz +%%% This work consists of the file aastex.cls + +%%% copyright = "Copyright (C) 2016 American Astronomical Society +%%% +%%% This work may be distributed and/or modified under the +%%% conditions of the LaTeX Project Public License, either version 1.3 +%%% of this license or (at your option) any later version. +%%% The latest version of this license is in +%%% http://www.latex-project.org/lppl.txt +%%% and version 1.3 or later is part of all distributions of LaTeX +%%% version 2003/12/01 or later. +%%% +%%% This work has the LPPL maintenance status "maintained". +%%% +%%% The Current Maintainer of this work is the American Astronomical Society. +%%% +%%% This work consists of all files listed in the document README. +%%% +%%% address = "American Astronomical Society +%%% USA", +%%% telephone = "+1 ???", +%%% FAX = "", +%%% email = "aastex-help@aas.org", +%%% codetable = "ISO/ASCII", +%%% keywords = "latex, AAS, journal", +%%% supported = "yes", +%%% abstract = "formatter for AAS journal submissions", +%%% } + +\ProvidesClass{aastex63}%%% + [2019/06/03 Version 6.3/AAS markup document class]% +{} +\ClassInfo{aastex}{% +^^J +^^J + Original \protect\LaTeX2.09 style + by Chris Biemesderfer (chris@seagoat.com). +^^J + Adapted to \protect\LaTeXe\space + by A. Ogawa (ogawa@teleport.com)% +^^J +emulateapj.cls included, Copyright 2000-2015 Alexey Vikhlinin +^^J +Rewrite and update of emulateapj.cls, +revised and enhanced with table macros, gridlines, draft watermark,^^J +track changes, new `modern' style and much more, by Amy Hendrickson,% +^^J + (amyh@texnology.com, http://www.texnology.com) +^^J +^^J +}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% aastex.cls version 2.0 is a based on emulateapj.cls, version January 23, 2015, +%% and an older version of aastex.cls, with many additional functionalities. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Options. Document style options, and additional feature options. + +% These are the General document style options, 6 choices + +% manuscript : onecolumn, doublespace, 12pt fonts + +%% Preprints are like manuscript, except they are single spaced. +% preprint : onecolumn, single space, 12pt fonts +% preprint2 : twocolumn, single space, 12pt fonts + +%% Modern is new design developed by David Hogg and Daniel Foreman-Mackey +% modern : one column, single space, 12pt fonts, more stylish + +% twocolumn : a two column article, single space, 10pt fonts + +% Default document style option +% onecolumn : a one column article; single space, 10pt fonts + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Additional feature options: + +% revtex4 : will produce an error message and demand to download revtex4-1. +% twocolappendix: make 2 column appendix // produces error message. +% onecolappendix: make 1 column appendix is the default. // not needed because it is the default +% astrosymb : Loads Astrosymb font and define \astro commands. +% tighten : Makes baselineskip slightly smaller, only works with twocolumn option. +%% author can also use the commands \tighten, or \singlespace or \doublespace in the body of their article +%% to get this change to the baselineskip +% times : uses times font as the default +% linenumbers : turn on lineno package. +% trackchanges : required to see the revision mark up and print output +% letteredappendix: (was numbered appendix) Not needed because it is the default, will label appendix sections A, B, ... +% numberedappendix: Legacy command, will produce same results as lettered appendix, since we don't want more +% than one `section 1' in article: will cause problems for cross referencing. + +% anonymous: to not list authors/affiliations be listed + +\newif\ifmanu +\newif\iftwelvepoint +\newif\ifmodern +\newif\ifdoublespace +\newif\if@two@col +\newif\ifonecolstyle +\newif\iftwocolstyle + +\newif\ifrnaas +%% makes modern the style for rnaas +\DeclareOption{RNAAS}{\global\rnaastrue} +\DeclareOption{rnaas}{\global\rnaastrue} + + \DeclareOption{manuscript}{\twelvepointtrue\@two@colfalse\doublespacetrue\manutrue}% + +%% Preprints are like manuscript but are single spaced: +\newif\ifpreprint + \DeclareOption{preprint}{\@two@colfalse\preprinttrue\twelvepointtrue}% + +\newif\ifpreprinttwo + \DeclareOption{preprint2}{\@two@coltrue\preprinttwotrue\twelvepointtrue}% + + +%% New design suggested by +\DeclareOption{modern}{\@two@colfalse\twelvepointtrue\moderntrue} + +%% left in from older version, in case it could be useful: + + + +\DeclareOption{twocolumn}{\twocolstyletrue\@two@coltrue\twelvepointfalse} + +%% default style +\DeclareOption{onecolumn}{\onecolstyletrue} + +%% obsolete option +\DeclareOption{revtex4}{\typeout{=================^^J^^J!!! The revtex4 option no longer + allowed!^^J^^J Please download revtex4-1.cls^^J^^J + Thank-you!^^J^^J=================}\stop} + +\newif\if@two@col@app +\DeclareOption{twocolappendix}{\@two@col@apptrue} +\DeclareOption{onecolappendix}{\@two@col@appfalse}%% this is default + +\newif\iflongauthor +\DeclareOption{longauthor}{\global\longauthortrue} + +\newlength{\bibbaselineskip}\setlength{\bibbaselineskip}{3.075mm} + + \DeclareOption{astrosymb}{ + \def\astro#1{\leavevmode\hbox{\astro@font#1}}% + \def\load@astro@font{% +\iftwelvepoint + \font\astro@font=Astrosym at 8pt +\else + \font\astro@font=Astrosym at 7pt +\fi +}% + \AtBeginDocument{\load@astro@font} + } + +%% Default definition for \astro, in case astrosymb option has not +%% been used: +\def\astro#1{\typeout{^^J^^J Please use class option `astrosymb' to +access fonts for the \string\astro\space command +^^J^^J +}\stop} + + \def\apjsecfont{\normalsize} + \def\secnum@size{\small} + \def\subsecnum@size{\normalsize} + + \def\AppendixApjSectionMarkInTitle#1{\relax} +\newif\ifletteredappendix + \DeclareOption{letteredappendix}{\global\letteredappendixtrue + \def\AppendixApjSectionMarkInTitle#1{#1.\ } + } + +%% this option is obsolete, since letteredappendix is a more logical name; +%% but keeping it here in case someone uses it, set to be the same as +%% letteredappendix. + \DeclareOption{numberedappendix}{\global\letteredappendixtrue + \def\AppendixApjSectionMarkInTitle#1{#1.\ } + } + + \newif\if@number@appendix@floats\@number@appendix@floatsfalse + \DeclareOption{appendixfloats}{ + \@number@appendix@floatstrue + } + +%%%%%%%%%%%%% +%% AH + +%% This option changes the baselineskips in the definitions of \normalsize etc +%% to make them a bit smaller. +\newif\iftighten +\DeclareOption{tighten}{\global\tightentrue} + +%% AH +\newif\iftimes +\DeclareOption{times}{\global\timestrue} + +\newif\ifnumlines +\DeclareOption{linenumbers}{\global\numlinestrue} + +\newif\iftrack +\DeclareOption{trackchanges}{\global\tracktrue} + +\newif\ifanonymous +\DeclareOption{anonymous}{\global\anonymoustrue} + +%% End AH Options + +\ExecuteOptions{onecolumn,onecolappendix,letteredappendix}% + +\ProcessOptions + +%%%%%%%%%%%%% +% + + \iftimes +%% Might be better to use apjfonts, from Alexey Vikhlinin's website +%% http://hea-www.harvard.edu/~alexey/emulateapj/apjfonts.sty +%%\usepackage{apjfonts} +%% but times.sty is ubiquitous, and many people may not have apjfonts.sty +%% or the fonts that it calls. +%% default fonts: +\usepackage{times} + \fi + +%%%%%%%%%%%%% + + \IfFileExists{revtex4-1.cls}{ + \def\@revtex@cls{revtex4-1} + }{ +\typeout{^^J^^J Please update your system to include +revtex4-1.cls^^J^^J}\stop + } +\def\@revtex@cls{revtex4-1} +\let\@startsection@from@latex=\@startsection + + +%% Passing options to revtex while loading: + \iftwelvepoint + \iflongauthor + \LoadClass[nofootinbib,showkeys,twoside,floatfix,unsortedaddress,flushbottom,12pt,aps,pra] + {\@revtex@cls} + \else + \LoadClass[nofootinbib,showkeys,twoside,floatfix,superscriptaddress,flushbottom,12pt,aps,pra] + {\@revtex@cls} + \fi + \else %not twelvepoint + \iflongauthor + \LoadClass[nofootinbib,showkeys,twoside,floatfix,unsortedaddress,flushbottom,10pt,aps,pra] + {\@revtex@cls} + \else + \LoadClass[nofootinbib,showkeys,twoside,floatfix,superscriptaddress,flushbottom,10pt,aps,pra] + {\@revtex@cls} + \fi + \fi + +%%%%%%%%%%%%%%%%%%%% + +\def\blankaffiliation{~}% + +%% needed? + \def\@eapj@cap@font{\bfseries} + \def\@eapj@figname{Figure} + \def\@eapj@tabname{Table} + +% Restore natbib package without sorting. +\def\NAT@sort{0} +\def\NAT@cmprs{0} + +% only redefine sort@cites for natbib versions < 2009 +\@ifundefined{NAT@sort@cites@}{\def\NAT@sort@cites#1{\edef\NAT@cite@list{#1}}}% + +\RequirePackage{latexsym}% +\RequirePackage{graphicx}% +\RequirePackage{amssymb}% + +\newcommand{\bibstyle@aas}{\bibpunct{(}{)}{;}{a}{}{,}}% +\@citestyle{aas}% + +\let\@startsection=\@startsection@from@latex +\def\baselinestretch{1.0} + +%% Default vertical space between horizontal lines. Can change definition +%% of arraystretch in the body of the paper; either for full article or +%% for a single table. +\AtBeginDocument{\def\arraystretch{1}} + +%% needed? +\def\raggedcolumn@sw#1#2{#2} % implement flushbottom as it was in revtex4 + +\RequirePackage{epsf,graphicx} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Font families +%% modification of bk10.clo, and bk12.clo, standard LaTeX distribution +%% +%% Implements doublespace used in `manuscript' option +%% Implements `tighten' option: make baselineskip smaller if `tighten' is used +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% tighten only works with two column styles: +\iftwocolstyle\else\global\tightenfalse\fi + +%%% preprint, preprint2, manuscript are 12pt +%% Modified bk12.clo +\iftwelvepoint + +\renewcommand\normalsize{% +\ifdoublespace % manuscript + \iftighten + \@setfontsize\normalsize\@xiipt{20}% + \else + \@setfontsize\normalsize\@xiipt{24}% + \fi +\else + \iftighten + \@setfontsize\normalsize\@xiipt{13}% + \else + \ifmodern + \@setfontsize\normalsize\@xiipt{16}% + \else + \@setfontsize\normalsize\@xiipt{15}% + \fi + \fi +\fi %% end doublespace/no double space + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} + +\normalsize + +\renewcommand\small{% +\ifdoublespace % manuscript + \@setfontsize\small\@xipt{20}% +\else +\ifmodern + \@setfontsize\small\@xipt{12}% +\else + \@setfontsize\small\@xipt{13.6}% +\fi\fi +%% end doublespace/no double space + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} + +\renewcommand\footnotesize{% +\ifdoublespace % manuscriptstyle + \@setfontsize\footnotesize\@xpt{18} +\else + \ifmodern + \@setfontsize\footnotesize\@xpt{11}% + \else + \@setfontsize\footnotesize\@xpt\@xiipt +\fi\fi + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\ifdoublespace % manuscript style +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{14}} +\renewcommand\tiny{\@setfontsize\tiny\@vipt{10}} +\renewcommand\large{\@setfontsize\large\@xivpt{18}} +\renewcommand\Large{\@setfontsize\Large\@xviipt{22}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}} +\renewcommand\huge{\@setfontsize\huge\@xxvpt{30}} +\else +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}} +\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt} +\renewcommand\large{\@setfontsize\large\@xivpt{22}} +\renewcommand\Large{\@setfontsize\Large\@xviipt{24}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xxpt{28}} +\renewcommand\huge{\@setfontsize\huge\@xxvpt{30}} +\fi +\let\Huge=\huge +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\else %% not twelvepoint, now tenpoint +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% no doublespace here, because the only doublespace is in `manuscript style' which is 12pt + +\renewcommand\normalsize{% +\iftighten + \@setfontsize\normalsize\@xpt{11.5}% +\else + \@setfontsize\normalsize\@xpt{12.5}% +\fi + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} + +\normalsize + +\renewcommand\small{% +\iftighten + \@setfontsize\small\@ixpt{12}% +\else + \@setfontsize\small\@ixpt{11}% +\fi + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} + +\renewcommand\footnotesize{% +\iftighten + \@setfontsize\footnotesize\@viiipt{9}% +\else + \@setfontsize\footnotesize\@viiipt{9.5}% standard eightpoint size +\fi + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} + +%% Standard 10pt font sizes +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\renewcommand\large{\@setfontsize\large\@xiipt{14}} +\renewcommand\Large{\@setfontsize\Large\@xivpt{18}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\renewcommand\huge{\@setfontsize\huge\@xxpt{25}} +\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} + +\fi + +%% End font sizes +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\headheight{12\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} + +% **************************************************** +% * TWO AND SINGLE ONE COLUMN STYLES: AV * +% **************************************************** +% + +%%%%% include atbeginend.sty by AV: + +% Copy \begin and \end to \BeginEnvironment and \EndEnvironment +\let\BeginEnvironment=\begin +\let\EndEnvironment=\end +%% \ifundefined from TeXbook +\def\IfUnDef#1{\expandafter\ifx\csname#1\endcsname\relax} +% Null command needed to eat its argument +\def\NullCom#1{} +\def\begin#1{% +% if defined \BeforeBeg for this environment, execute it +\IfUnDef{BeforeBeg#1}\else\csname BeforeBeg#1\endcsname\fi% +\IfUnDef{AfterBeg#1}% This is done to skip the command for environments + % which can take arguments, like multicols; YOU MUST NOT + % USE \AfterBegin{...}{...} for such environments! + \let\SaveBegEnd=\BeginEnvironment% +\else + % Start this environment + \BeginEnvironment{#1}% + % and execute code after \begin{environment} + \csname AfterBeg#1\endcsname + \let\SaveBegEnd=\NullCom +\fi +\SaveBegEnd{#1} +} +\def\end#1{% +% execute code before \end{environment} +\IfUnDef{BeforeEnd#1}\else\csname BeforeEnd#1\endcsname\fi% +% close this environment +\EndEnvironment{#1} +% and execute code after \begin{environment} +\IfUnDef{AfterEnd#1}\else\csname AfterEnd#1\endcsname\fi% +} +\long\def\BeforeBegin#1#2{\expandafter\gdef\csname BeforeBeg#1\endcsname {#2}} +\long\def\BeforeEnd #1#2{\expandafter\gdef\csname BeforeEnd#1\endcsname {#2}} +\long\def\AfterBegin #1#2{\expandafter\gdef\csname AfterBeg#1\endcsname {#2}} +\long\def\AfterEnd #1#2{\expandafter\gdef\csname AfterEnd#1\endcsname{#2}} + +%%%% end of atbeginend.sty + +% **************************************** +% * PAGE LAYOUT * +% **************************************** + +% Page size, spacing parameters, etc. + +\textwidth=7.1in +\columnsep=0.3125in +\parindent=0.125in +\voffset=-20mm +\hoffset=-7.5mm + +\topmargin=0in +\headheight=.15in +\headsep=0.5in +\oddsidemargin=0in +\evensidemargin=0in +\parskip=0cm + +\tolerance=600 % 3x "normal" value; cuts down on overfull complaints + +%% AV,MM, to have 64 lines per column, with textheight 25cm: +\textheight=64\baselineskip +\textheight=\baselinestretch\textheight +\ifdim\textheight>25.2cm\textheight=25.0cm\fi + +%% so that the margin at the bottom of the page is about equal to margin at top. -- AH +\advance\textheight -54pt + +\topskip\baselineskip +\maxdepth\baselineskip + + + +\def\eqsecnum{ + \@newctr{equation}[section] + \def\theequation{\hbox{\normalsize\arabic{section}-\arabic{equation}}}} + +%% running heads: +\def\lefthead#1{\gdef\@versohead{#1}} \lefthead{\relax} +\def\righthead#1{\ifanonymous\gdef\@rectohead{\ \ Anonymous author(s) +\hfill}\else\gdef\@rectohead{#1}\fi} \righthead{\relax} +\let\shorttitle\lefthead +\let\shortauthors\righthead + +\def\ps@apjheads{\let\@mkboth\markboth + \def\@evenfoot{} + \def\@evenhead{\lower9mm\hbox to\textwidth{ + \rm\thepage\hfil \rm\textsc{\@rectohead} \hfil}}} + \def\@oddfoot{} + \def\@oddhead{\lower9mm\hbox to\textwidth{ + \hfil\rm\textsc{\@versohead}\hfil \rm\thepage}} + +\pagestyle{apjheads} + +\@twosidetrue + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TITLE PAGE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% October 2017, adding preprint number capability +\newcount\rptnum +\newcount\rptloopnum +\def\reportnum#1{\global\advance\rptnum by 1 +\expandafter\gdef\csname report\the\rptnum\endcsname{\hbox to +\textwidth{\hskip.75\textwidth\relax#1\relax\hfill}}} + +\long\def\frontmatter@title@above{ +\ifrnaas +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +\noindent{\sc Draft version \today}\\[2pt] +{\footnotesize Typeset using \LaTeX\ {\bf RNAAS} style in AASTeX63} +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\else +\vbox to 0pt{\vskip-48pt\normalsize\rptloopnum=0\loop +\global\advance\rptloopnum by 1 +\expandafter\ifx\csname report\the\rptloopnum\endcsname\relax +\else +\csname report\the\rptloopnum\endcsname +\vskip1pt +\repeat +\vss +} +\ifmodern +\vglue-18pt +{\footnotesize +\raggedright +{\sc Draft version \today}\\[2pt] +{\footnotesize +Typeset using \LaTeX\ {\bf modern} style in AASTeX63} +\vskip48pt +} +\else +%% +\ifpreprint +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +\noindent{\sc Draft version \today}\\[2pt] +{\footnotesize Typeset using \LaTeX\ {\bf preprint} style in AASTeX63} +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\else +%% +\ifpreprinttwo +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +{\footnotesize\textsc{\@journalinfo}}\par +{\footnotesize Typeset using \LaTeX\ {\bf preprint2} style in AASTeX63} +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\else +%% +\iftwocolstyle +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +{\footnotesize\textsc{\@journalinfo}}\par +{\footnotesize Typeset using \LaTeX\ {\bf twocolumn} style in AASTeX63} +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\else +\ifmanu +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +\noindent\textsc{\@journalinfo}\\[-8pt] +{\footnotesize Typeset using \LaTeX\ {\bf manuscript} style in +AASTeX63} +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\else +%% Default +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +{\footnotesize\textsc{\@journalinfo}}\par +{\footnotesize Typeset using \LaTeX\ default style in AASTeX63}%% default style +\par\vspace*{-\baselineskip}\vspace*{0.625in} +\fi\fi\fi\fi\fi +%% +\fi %% ends test to see if rnaas option was used; if rnaas is true + %% none of this command will be activated. +}% + +\def\frontmatter@title@produce{% + \begingroup +\ifnumlines\nolinenumbers\fi + \frontmatter@title@above + \frontmatter@title@format + \@title +%% October 2017, was +12pt + \@ifx{\@title@aux\@title@aux@cleared}{}{% + \expandafter\frontmatter@footnote\expandafter{\@title@aux}% + }% + \par +%% \class@warn{Unused short title ignored}% +\ifmodern +\vskip-42pt +\else +\ifmanu +\vskip-60pt +\else + \frontmatter@title@below +\fi +\fi + \endgroup +}% + +\newcount\fncount +\newcount\endfncount +\long\def\tempfootnote#1{\global\advance\fncount by 1\relax% +\expandafter\gdef\csname +footnote\the\fncount\endcsname{\if@two@col\hsize=.5\textwidth +\advance\hsize by -18pt +\fi\relax#1}} + +\long\def\abstracttempfootnote#1{\global\advance\fncount by 1\relax% +\expandafter\gdef\csname absfootnote\the\fncount\endcsname{#1}} + +\def\tempfootnoteintitle#1{} + +\long\def\ltx@foottext#1#2{% + \begingroup +\expandafter\ltx@make@current@footnote\expandafter{\@mpfn}{#1}% +\@footnotetext{\vtop{\iftwocolstyle\hsize=.5\textwidth +\advance\hsize-18pt +\fi #2\vskip2pt}}% fixed for two col style, march 15, 2019 + \endgroup +}% + +\def\kickoutfootnotes{\c@footnote=0\relax% +\loop\advance\endfncount by 1\relax% +\expandafter\ifx\csname footnote\the\endfncount\endcsname\relax% +\else% +\def\thempfn{\fnsymbol{footnote}}% +\advance\c@footnote by 1\relax% +\unskip\footnote{\csname footnote\the\endfncount\endcsname}% +\repeat} + +%% +\renewcommand\title[2][]{% +\def\@title{\setbox0=\vbox{\let\footnote\tempfootnote #2}% +{\let\footnote\tempfootnoteintitle%\uppercase +{#2}}%% here??? +\kickoutfootnotes +\ifdoublespace\vskip 3\baselineskip\fi +}% + \def\@shorttitle{#1}% + \let\@AF@join\@title@join +}% + +\def\frontmatter@title@format{ +%% No exception for rnaas, May, 2019 +%\ifrnaas +%\large\scshape\centering +%\else +\normalsize +%% added Mar 2019 +\bf\centering +%\fi +} + +\def\frontmatter@title@below{\vskip8pt}% + + +\def\frontmatter@authorformat{\small\advance\baselineskip-3pt +\parskip=0pt\ifrnaas\else\scshape\fi +\ifmodern +\vskip48pt +\centering +\leftskip=.05in plus 1fil +\rightskip=.05in plus 1 fil +\baselineskip=13pt +\else +\centering +\fi +}% + + +\def\frontmatter@affiliationfont{\normalfont\footnotesize +%% changed october 2017 +\it +\iflongauthor\else +\ifrnaas\else +\rightskip-12pt plus 1fil +\leftskip6pt \parindent-4pt +\fi\fi +}% + + \def\frontmatter@finalspace{\ifrnaas\vspace*{-\baselineskip}\vspace*{0.0in} +\else +\vskip-24pt\fi} + +\def\@separator{\\}% + +\newcounter{front@matter@foot@note}\setcounter{front@matter@foot@note}{0} + +\iflongauthor% +\renewcommand\affiliation[1]{% +\parskip=2pt +\def\@centercr{\vrule depth 3pt width0pt\vskip1sp} + \move@AU\move@AF% +\iflongauthor\let\@listand\relax\fi + \begingroup% + \@affiliation{%\hspace*{2mm} +\ifnum\countauthors<\AuthorCollaborationLimit + #1\ifmodern\iflongauthor\baselineskip=12pt\else\vskip2pt\fi\else\baselineskip=11pt +\fi\fi +\ifnum\countauthors=\AuthorCollaborationLimit + #1\ifmodern\iflongauthor\baselineskip=12pt\else\vskip2pt\fi\else\baselineskip=11pt +\fi\fi +\iflongauthor \vskip-10pt\ifnum\countauthors>\AuthorCollaborationLimit\iftwelvepoint\vskip-3pt\else\iftwocolstyle\else\vskip-6pt\fi\fi\fi% +\fi +}% +\let\@centercr\savecentercr}% +\else +%% older version +\renewcommand\affiliation[1]{% + \move@AU\move@AF% + \begingroup% + \@affiliation{%\hspace*{2mm} +%% october 2017 changes: +\centering + #1\ifmodern +\baselineskip=9.5pt + \else + \iftwelvepoint + \ifpreprint\baselineskip=12pt\else\ifpreprinttwo\else\baselineskip19pt\fi\fi\else \baselineskip=9.5pt\fi +\fi}% +}% +\fi %% end switch for longauthor + +% ABSTRACT +\def\frontmatter@abstractfont{\normalsize\parindent=9pt +}% +%% october 2017 +\def\frontmatter@abstractwidth{478pt} +\def\frontmatter@preabstractspace{12pt} +\def\frontmatter@postabstractspace{12pt} + +\def\abstractname{ABSTRACT} +\long\def\frontmatter@abstractheading{% + \begingroup + \centering +\ifmodern\else\hskip34pt \fi \abstractname + \vskip 1mm + \par + \endgroup +}% + +\newif\ifabstract% +\renewenvironment{frontmatter@abstract}{% + \aftermaketitle@chk{\begin{abstract}}% +\global\abstracttrue + \global\setbox\absbox\vbox\bgroup + \color@begingroup +%% width of abstract changed oct 2017 +\ifmodern + \columnwidth\textwidth + \hsize\columnwidth +\else +\hsize = 478pt +\fi + \@parboxrestore + \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote)}\c@mpfootnote\z@ % should be footnote, not mpfootnote? +% \let\@footnotetext\frontmatter@footnotetext + \minipagefootnote@init + \let\set@listindent\set@listindent@ + \let\@listdepth\@mplistdepth \@mplistdepth\z@ + \let@environment{description}{frontmatter@description}% + \@minipagerestore + \@setminipage + \frontmatter@abstractheading + \frontmatter@abstractfont +% \let\footnote\mini@note +\ifmodern\else\everypar={\leftskip=34pt}\fi +% \expandafter\everypar\expandafter{\the\everypar\addcontents@abstract\everypar{}}% +\ifnumlines\let\go\linenumbers\else\let\go\relax\fi\go +}{% +\ifnumlines\let\go\endlinenumbers\else\let\go\relax\fi\go + \par + \unskip + \minipagefootnote@here + \@minipagefalse %% added 24 May 89 + \color@endgroup +\egroup% end setbox\absbox +}% + +\let\abstract\frontmatter@abstract + +\def\frontmatter@abstract@produce{% + \par + \preprintsty@sw{% + \do@output@MVL{% + \vskip\frontmatter@preabstractspace + \vskip200\p@\@plus1fil + \penalty-200\relax + \vskip-200\p@\@plus-1fil + }% + }{% + \addvspace{\frontmatter@preabstractspace}% + }% + \begingroup + \dimen@\baselineskip + \setbox\z@\vtop{\unvcopy\absbox}% + \advance\dimen@-\ht\z@\advance\dimen@-\prevdepth + \@ifdim{\dimen@>\z@}{\vskip\dimen@}{}% + \endgroup + \begingroup + \prep@absbox +%% centered, oct 2017 +\unvbox\absbox + \post@absbox + \endgroup + \@ifx{\@empty\mini@notes}{}{\mini@notes\par}% + \addvspace\frontmatter@postabstractspace +\global\abstractfalse +}% + +\newif\ifbib + +% **************************************** +% * KEYWORDS * +% **************************************** + + + \def\@keys@name{\textit{Keywords:}\/~\mbox{}}% + +\newlength{\keys@width} +\def\frontmatter@keys@format{\ifmodern\vskip0pt\else\vspace*{0.5mm}\fi% + \settowidth{\keys@width}{\normalsize\@keys@name}% +\ifmodern\else +\rightskip=0.5in +\leftskip=34pt +\fi +\parindent=0pt% + \hangindent=\keys@width\hangafter=1\normalsize}% +\def\@keywords@produce#1{% + \showKEYS@sw{% + \begingroup% + \frontmatter@keys@format% + \@keys@name#1 +\vrule depth 12pt width 0pt +\ifnobreakafterkeywords +\vrule depth 24pt width0pt\fi +\par + \endgroup + }{% + \@if@empty{#1}{}{% + \class@warn{If you want your keywords to appear in your output, use document class option showkeys}% + }% + }% +}% + +\let\subjectheadings=\keywords + + +% **************************************** +% * FOOTNOTES * +% **************************************** + +%% legacy notes and footnote code + +% Footnotes on the last page: user issues \lastpagefootnotes. It catches all +% footnotes and issues them before \begin{refernces} or +% \begin{\thebibliography} or \begin{appendix}, whichever comes first, +% at the end of right column. +\newcounter{lastfootnote} +\let\orig@footnote=\footnote +% +\def\spit@out@footnotes@{\addtocounter{footnote}{-\c@lastfootnote}\vspace*{-\baselineskip}\vspace*{\skip\footins}\bgroup\footnotesize\lastfootnote\par\egroup\let\footnote=\orig@footnote} +% +\let\spit@out@footnotes\relax +% +\long\def\lastpagefootnotes{% +\raggedbottom% Have to use flushbottom with revtex4-1 but it eats away + % last page footnotes +\setcounter{lastfootnote}{0} +\long\gdef\lastfootnote{\mbox{}} +\let\spit@out@footnotes\spit@out@footnotes@ +\long\def\footnote##1{\refstepcounter{lastfootnote}\footnotemark\g@addto@macro\lastfootnote{\\[\footnotesep]\refstepcounter{footnote}\mbox{}\hspace*{3mm}\textsuperscript{\thefootnote}~##1}} +% We need to mess with footnotes in appendix only if it is in a +% different mode (twocol vs onecol) than the main text +\def\mess@with@appendix@footnotes{ +\BeforeBegin{appendix}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\BeforeEnd{appendix}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\AfterEnd{appendix}{\let\footnote=\orig@footnote} +} + +\if@two@col + \if@two@col@app\else + \mess@with@appendix@footnotes + \fi +\fi + +\BeforeBegin{references}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\BeforeBegin{thebibliography}{\spit@out@footnotes\let\spit@out@footnotes\relax} +% in case \lastpagefootnotes were given inside \begin{appendix}\end{appendix}, +\AfterEnd{references}{\let\footnote=\orig@footnote} +\AfterEnd{thebibliography}{\let\footnote=\orig@footnote} +} +\let\lastpagefootnote=\lastpagefootnotes + +%% probably not needed: +\def\notetoeditor#1{}% % We do not need notes to editor in the preprint +\def\placetable#1{}% % We do not need notes to editor in the preprint +\def\placefigure#1{}% % We do not need notes to editor in the preprint + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\ifdoublespace %used for manuscript +\footnotesep 12pt +\skip\footins 36pt +\else +\footnotesep 12pt +\skip\footins 24pt +\fi + +\let\footnoterule\relax + +\def\@makefntext#1{\hsize=\columnwidth\mbox{}\hspace*{3mm}\@makefnmark~#1} + + +% **************************************** +% * SECTIONS * +% **************************************** + +\setcounter{secnumdepth}{3} + +\newcount\tempsectnum + +\newif\if@firstsection \@firstsectiontrue + +\def\section{% +\if@firstsection +%% In case no collaboration is listed: +\ifcollaborationon\else\let\doauthor\olddoauthor +\let\allauthors=\oldallauthors +\fi +%\edef\currauthorlimit{\the\AuthorCollaborationLimit} +%\collaboration{\currauthorlimit}{} + \maketitle +\global\@firstsectionfalse + \setcounter{footnote}{\thefront@matter@foot@note}% + \let\footnotetext=\old@foot@note@text + \let\footnotemark=\old@foot@note@mark +\ifnobreakafterkeywords +\ifmodern\vskip24pt +\else +\vskip12pt\fi%% +\goodbreak +\else +\ifrnaas\else + \clearpage\fi +\fi + \if@two@col + \twocolumngrid + \fi +\fi +\tempsectnum=\the\c@section +\advance\tempsectnum by 1 +\xdef\cref@currentlabel{section \the\tempsectnum} + \@startsection{section}{1}{\z@}{9pt plus 1pt minus + 1pt}{4pt}{\apjsecfont\center}} + +\def\subsection{\@startsection{subsection}{2}{\z@}{9pt plus 1pt minus 1pt}{4pt}% + {\normalsize\itshape \center}} + +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {2ex plus 1ex minus .2ex}{1ex plus .2ex}{\small\itshape \center}} + +\def\paragraph{\@startsection{paragraph}{4}{\z@}% + {1.5ex plus 1ex minus .2ex}{0pt}{\small\itshape}} + +\def\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {1ex plus 1ex minus .2ex}{-0.5\parindent}{\small\itshape}} + + +\def\thesection{\arabic{section}} +\def\thesubsection{\thesection.\arabic{subsection}} +\def\thesubsubsection{\thesubsection.\arabic{subsubsection}} +\def\theparagraph{\thesubsubsection.\arabic{paragraph}} +\def\p@section {} +\def\p@subsection {} +\def\p@subsubsection {} +\def\p@paragraph {} +\def\p@subparagraph {} + + +\def\sec@upcase#1{\uppercase{#1}} +\def\subsec@upcase#1{\relax{#1}} + +% +% How the section number will appear in the section title - AV +\def\ApjSectionMarkInTitle#1{\ifrnaas\else #1.\ \fi} +\def\ApjSectionpenalty{0} + + +\def\@sect#1#2#3#4#5#6[#7]#8% +{\ifnum#2=1\setbox0=\hbox{\def\label##1{\gdef\templabel{##1}}#7}\fi +\@tempskipa #5\relax + \ifdim \@tempskipa >\z@ \begingroup + #6\relax + \ifnum #2>\c@secnumdepth \def \@svsec {}\else + \refstepcounter{#1} \edef \@svsec {\ApjSectionMarkInTitle + {\csname the#1\endcsname}}\fi + \@hangfrom {\hskip #3\relax + \ifnum #2=1{\secnum@size {\rm\@svsec~}}% + \else {\subsecnum@size {\rm\@svsec~}}\fi }% + {\interlinepenalty \@M + \ifnum #2=1\sec@upcase{#8}% + \else \subsec@upcase{#8}\fi\par}\endgroup + \csname #1mark\endcsname {#7}\addcontentsline{toc}{#1}% + {\ifnum #2>\c@secnumdepth \else \protect \numberline + {\csname the#1\endcsname }\fi #7}% + \else + \ifnum #2>\c@secnumdepth \def \@svsec {}\else + \refstepcounter{#1} \edef \@svsec {\ApjSectionMarkInTitle + {\csname the#1\endcsname}}\fi + \def \@svsechd {#6\hskip #3% + \ifnum #2=1{\secnum@size{\rm\@svsec~}}\else{\subsecnum@size{\rm\@svsec~}}\fi% + \ifnum #2=1\sec@upcase{#8}\else\subsec@upcase{#8}\fi% + \ifnum #2=4\hskip 0.4ex{\rm ---}\fi% + \csname #1mark\endcsname {#7}\addcontentsline{toc}{#1}% + {\ifnum #2>\c@secnumdepth \else \protect \numberline {\csname + the#1\endcsname }\fi #7}}\fi \@xsect {#5} \penalty \ApjSectionpenalty +%-refstepcounter is now within a group. So \@currentlabel, which is normally +%-set by \refstepcounter is hidden within a group. Need to set it manually. +\protected@edef\@currentlabel{\csname p@#1\endcsname\csname +the#1\endcsname} +\expandafter\ifx\csname templabel\endcsname\relax +\let\go\relax +\else +\def\go{\label{\templabel}}\fi\go +\let\templabel\relax +} + +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M + \sec@upcase{#5}\par}\endgroup + \else \def\@svsechd{#4\hskip #1\relax \sec@upcase{#5}}\fi + \@xsect{#3} +% MM: +\penalty \ApjSectionpenalty} + + + +%% begin...end form, not as good as \acknowledgments...\par +\newbox\ackbox +\def\xacknowledgments{\vskip 5.8mm plus 1mm minus 1mm +\vskip1sp +\section*{Acknowledgments} +\vskip4pt +\global\setbox\ackbox=\vbox\bgroup +} + +\def\xendacknowledgments{\egroup +\ifanonymous +\centerline{(Acknowledgements anonymized for review)} +\else +\copy\ackbox\fi} + +%% If anonymous option is used, a message instead of acknowledgments will appear. + + +\long\def\xacknowledgments\par#1\par{\vskip 5.8mm plus 1mm minus 1mm +\vskip1sp +\vbox{ +\section*{Acknowledgments} +\ifanonymous +\centerline{(Acknowledgements anonymized for review)} +\else +\nobreak +\vtop{#1}\fi}\vskip6pt} + + +\long\def\yacknowledgments#1\par{\vskip 5.8mm plus 1mm minus 1mm +\vskip1sp +\vbox{ +\section*{Acknowledgments} +\ifanonymous +\centerline{(Acknowledgements anonymized for review)} +\else +\nobreak +\vtop{#1}\fi}\vskip6pt} + +\def\acknowledgments{\futurelet\next\checkforblankline} +\def\checkforblankline{\ifx\next\par \let\go\xacknowledgments \else +\let\go\yacknowledgments\fi\go} + + +% **************************************** +% * APPENDIX * +% **************************************** + +\newcounter{remember@figure@num} +\newcounter{remember@table@num} + +% this was an environment earlier, which doesn't make sense since we don't +% do \begin{appendix}...\end{appendix}. Changed to \appendix which is how it is used. + +% numberedappendix: Needed to label appendix sections A, B, . +% appendixfloats: Needed. ?? + +\newif\ifappendixon +\def\appendix{ +\global\appendixontrue +\if@two@col +\onecolumngrid +\noindent\mbox{}\vrule height 24pt width0pt\hfill{\apjsecfont APPENDIX}\hfill\mbox{}\par +\vskip18pt + \if@two@col@app\global\@two@coltrue\twocolumngrid \fi + % above, we want onecolumngrid to be default. Only twocolumn is asked for in documentclass option +\else +\noindent\mbox{}\vrule height 24pt width0pt\hfill{\apjsecfont +APPENDIX}\hfill\mbox{}\par +\vskip18pt + \if@two@col@app\global\@two@coltrue\twocolumngrid + \fi\fi +% \vrule used for extra space; otherwise revtex4-1 sometimes eats +% away the last line before appendix + \nopagebreak\medskip\@nobreaktrue\def\ApjSectionpenalty{\@M} + \@firstsectionfalse + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{equation}{0} +%% +\ifletteredappendix + \def\thesection{\Alph{section}} + \def\theequation{\hbox{\Alph{section}\arabic{equation}}} +%% these are NOT supposed to reset to zero +%\setcounter{table}{0} +%\setcounter{figure}{0} +\fi +%% +\if@number@appendix@floats +% we don't want to set equations to zero in appendix, because there +% might then be two equation 1's, etc., confusing for cross referencing. +%\setcounter{equation}{0} + \def\thesection{\Alph{section}} + \def\theequation{\hbox{\Alph{section}\arabic{equation}}} + \def\section{\@startsection {section}{1}{\z@} + {10pt}{5pt}{\centering\scshape\apjsecfont}} +\else +% Do not use appendix numbers in the titles + \def\ApjSectionMarkInTitle{\AppendixApjSectionMarkInTitle} +\fi +\ifappletter +\let\savesection\section +\def\section{\resetapptablenumbers\savesection} +\fi +} +% + + +%% + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** + +\renewenvironment{references}[0]{ + \onecolumngrid + \par + \vspace{10pt plus 3pt} + \noindent \makebox[\textwidth][c]{\small\scshape REFERENCES} + \par + \vspace*{4pt plus 3pt} + \set@column@hsize{2}\twocolumngrid + \parindent=0cm \parskip=0cm + \def\baselinestretch{1.0} + \footnotesize \baselineskip=\baselinestretch\bibbaselineskip plus 1pt + minus 1pt \interlinepenalty \@M + \hyphenpenalty=10000 + \frenchspacing % AV - to get right spacing after ``et al.'' + \def\refpar{\par\hangindent=1.2em\hangafter=1}} +{ + \onecolumngrid +} + +% redefine thebibliography + +% remove numbers from the reference list +\def\@biblabel#1{\relax} + +\newskip\bibskip +\bibskip=0pt plus 1pt +\let\savebibitem\bibitem +\def\bibitem{\vskip\bibskip\savebibitem} +\newdimen\bibindent +\renewenvironment{thebibliography}[1]{\global\bibtrue +%%\ifrnaas\newpage\fi% Not wanted, March 2019 +\onecolumngrid +\vspace{20pt} +\goodbreak + \hbox to\textwidth{\hss\normalsize REFERENCES\hss} +\vspace{6pt}\parskip=0pt +\twocolumngrid +\par + \raggedright +\small +\ifmodern\else + \vspace{10pt plus 3pt}\fi +\par +\topsep=0pt + \list{}% + { + \parindent=0pt \parskip=1pt plus 1pt \parsep=0pt % AV + \bibindent=0pt % +\ifmodern\vskip-12pt +\baselineskip=13pt plus 1pt +\else +\ifdoublespace +\baselineskip=20pt +\else +\baselineskip=13pt plus 1pt \fi\fi \interlinepenalty \@M % AV + \frenchspacing % AV - to get right spacing after ``et al.'' + \hyphenpenalty=10000 + \itemindent=-1.0em % + \itemsep=0pt % + \listparindent=0pt % + \settowidth\labelwidth{0pt} % + \labelsep=0pt % + \leftmargin=1.0em + \advance\leftmargin\labelsep +%%% \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\relax}}% + \sloppy\clubpenalty10000\widowpenalty10000% + \sfcode`\.\@m\relax +%%%\item[] This May be necessary, but causes extra vertical space in first column +%%% of the bibliography. +} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% +\endlist + \onecolumngrid % to balance references +\global\bibfalse +\newpage + } + +% %% AV: + +\def\reference{\@ifnextchar\bgroup {\@reference} + {\@latexerr{Missing key on reference command} + {Each reference command should have a key corresponding to a markcite somewhere in the text}}} +\def\@reference#1{\refpar} + +%% subtitle header and journal info, legacy, probably not needed +% \def\submitted#1{\gdef\@submitted{#1}} +% \let\slugcomment\submitted % slugcomment == submitted +% \submitted{Draft version \today} +% \journalinfo{\@submitted} + + \def\journalinfo#1{\gdef\@journalinfo{#1}} + \journalinfo{Draft version \today} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Equations % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% EQNARRAY with reduced spacing around tab characters - AV +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \setlength{\arraycolsep}{0.25\arraycolsep} + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr + } + +% **************************************** +% * TABLES AND FIGURES * +% **************************************** + +\def\@arstrut@hline@clnc{0.5\p@}% % Klootch: magic number + +\setcounter{topnumber}{7} + +\setlength{\belowcaptionskip}{4pt}% +\setlength{\abovecaptionskip}{5pt} + +\setlength{\textfloatsep}{9pt} +\setlength{\dbltextfloatsep}{0pt} + +% \addtolength{\textfloatsep}{17mm plus 10mm minus 10mm} + % \addtolength{\dbltextfloatsep}{7mm plus 10mm minus 10mm} + + +\renewcommand{\topfraction}{1.0} +\renewcommand{\bottomfraction}{1.0} +\renewcommand{\textfraction}{0.0} +\renewcommand{\dbltopfraction}{0.85} +\renewcommand{\dblfloatpagefraction}{0.85} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} + +% Copied from revtex4.cls; without it, captions are centered +\def\@xfloat@prep{% + \let\footnote\footnote@latex + \def\@mpfn{mpfootnote}% + \def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@footnotetext\@mpfootnotetext + \let\H@@footnotetext\@mpfootnotetext + \let\@makefntext\@mpmakefntext +}% + + +%%%%%%%%%%%% \cutinhead + +%% Number of \pt@ncol set when \tablecolumns{} used at beginning of +%% deluxetable. + +\def\@ptabularcr{\\} +\newcommand\cutinhead[1]{% + \noalign{\vskip 1.5ex}% + \hline + \@ptabularcr + \noalign{\vskip -1.5ex}% + \multicolumn{\pt@ncol}{c}{#1}% + \@ptabularcr + \noalign{\vskip .8ex}% + \hline + \@ptabularcr + \noalign{\vskip -2ex}% +}% + +\newcommand\sidehead[1]{% + \noalign{\vskip 1.5ex}% +% \hline +% \@ptabularcr +% \noalign{\vskip -1.5ex}% + \multicolumn{\pt@ncol}{l}{#1}% + \@ptabularcr + \noalign{\vskip .8ex}% +% \hline +% \@ptabularcr +% \noalign{\vskip -2ex}% +}% + + +%% these don't seem to be relevant: +\newcommand\figcaption{\@testopt{\@xfigcaption}{}}% +%% suggested by Joern Wilms +\def\@figcaption#1{{\def\@captype{figure}\caption{\footnotesize #1}}} +\def\@xfigcaption[#1]#2{{\def\@captype{figure}\caption{\footnotesize +#2}}} + +\def\thefigure{\@arabic\c@figure} + +\def\fnum@figure{{\footnotesize{\@eapj@cap@font\rm +\mbox{\@eapj@figname~\thefigure}% <== was period here +}}} + +\def\thetable{\@arabic\c@table} +%%% Table captions without making a floating table +\def\tabcaption{\@ifnextchar[{\@xtabcaption}{\@tabcaption}} +\def\@tabcaption#1{{\def\@captype{table}\caption{#1}}} +\def\@xtabcaption[#1]#2{{\def\@captype{table}\caption{#2}}} + +%% redefined below +\def\fnum@table{{\@eapj@cap@font \@eapj@tabname~\thetable}} + + \let\fnum@ptable=\fnum@table + \def\fnum@ptablecont{{\centering{\scshape Table~\thetable}---{\itshape + Continued}}}% + \long\def\@make@caption@text#1#2{% + {\small\centering#1{\scshape #2}\par\vskip1.4ex} + }% + +\long\def\@makecaption@plano@cont#1#2{% + {\small \centering#1\par}\vskip1.4ex\relax +}% + + +%% Commands from aastex.cls: + +% This has been redefined below +%\newcommand\dataset{\@testopt\@dataset{[}}% +%\def\@dataset[#1]#2{#2}% + +\newcommand\facility{\@testopt\@facility{[}}% +\def\@facility[#1]#2{{\vskip6pt{\large\it Facility:} #2}}% + +\newcommand\facilities{\@testopt\@facilities{[}}% +\def\@facilities[#1]#2{{\vskip6pt{\large\it Facilities:} #2}}% + + +\long\def\software{\bgroup\@testopt \@software {[}} +\def\@software[#1]#2{\vskip 6pt{ +\frenchspacing +\iftwelvepoint +\font\foo=cmr12 +\else +\font\foo=cmr10\fi +%% +\fontdimen2\foo=3pt %% Changed from 1.5pt to 3pt, March12, 2019 +%% +{\large \it Software: } +#2 +%% returning to original fontdimen +\iftwelvepoint +\fontdimen2\foo=3.91663pt +\else +\fontdimen2\foo=3.33333pt +\fi +}\egroup} + + + + + +\newcommand\object{\@testopt\@object{[}}% +\def\@object[#1]#2{#2}% +\newcommand\objectname{\@testopt\@objectname{[]}}% +\def\@objectname[#1]#2{#2}% +\newlength{\plot@width} +\def\eps@scaling{1.0}% +\newcommand\epsscale[1]{\def\eps@scaling{#1}}% +\newcommand\plotone[1]{% + \centering + \leavevmode + \setlength{\plot@width}{0.85\linewidth} + \includegraphics[width={\eps@scaling\plot@width}]{#1}% +}% +\newcommand\plottwo[2]{% + \centering + \leavevmode + \setlength{\plot@width}{0.425\linewidth} + \includegraphics[width={\eps@scaling\plot@width}]{#1}% + \hfil + \includegraphics[width={\eps@scaling\plot@width}]{#2}% +}% +\newcommand\plotfiddle[7]{% + \centering + \leavevmode + \vbox\@to#2{\rule{\z@}{#2}}% + \includegraphics[% + scale=#4, + angle=#3, + origin=c + ]{#1}% +}% +\newcommand\figurenum[1]{% + \def\thefigure{#1}% + \let\@currentlabel\thefigure + \addtocounter{figure}{\m@ne}% +}% + +\newcommand\phn{\phantom{0}}% +\newcommand\phd{\phantom{.}}% +\newcommand\phs{\phantom{$-$}}% +\newcommand\phm[1]{\phantom{#1}}% +\let\la=\lesssim % For Springer A&A compliance... +\let\ga=\gtrsim +\newcommand\sq{\mbox{\rlap{$\sqcap$}$\sqcup$}}% +\newcommand\arcdeg{\mbox{$^\circ$}}% +\newcommand\arcmin{\mbox{$^\prime$}}% +\newcommand\arcsec{\mbox{$^{\prime\prime}$}}% +\newcommand\fd{\mbox{$.\!\!^{\mathrm d}$}}% +\newcommand\fh{\mbox{$.\!\!^{\mathrm h}$}}% +\newcommand\fm{\mbox{$.\!\!^{\mathrm m}$}}% +\newcommand\fs{\mbox{$.\!\!^{\mathrm s}$}}% +\newcommand\fdg{\mbox{$.\!\!^\circ$}}% +\newcommand\farcm@mss{\mbox{$.\mkern-4mu^\prime$}}% +\let\farcm\farcm@mss +\newcommand\farcs@mss{\mbox{$.\!\!^{\prime\prime}$}}% +\let\farcs\farcs@mss +\newcommand\fp{\mbox{$.\!\!^{\scriptscriptstyle\mathrm p}$}}% +\newcommand\micron{\mbox{$\mu$m}}% +\def\farcm@apj{% + \mbox{.\kern -0.7ex\raisebox{.9ex}{\scriptsize$\prime$}}% +}% +\def\farcs@apj{% + \mbox{% + \kern 0.13ex.% + \kern -0.95ex\raisebox{.9ex}{\scriptsize$\prime\prime$}% + \kern -0.1ex% + }% +}% + + +\newcommand\ion[2]{#1$\;${% +\ifx\@currsize\normalsize\small \else +\ifx\@currsize\small\footnotesize \else +\ifx\@currsize\footnotesize\scriptsize \else +\ifx\@currsize\scriptsize\tiny \else +\ifx\@currsize\large\normalsize \else +\ifx\@currsize\Large\large +\fi\fi\fi\fi\fi\fi +\rmfamily\@Roman{#2}}\relax}% + +\renewcommand\case[2]{\mbox{$\frac{#1}{#2}$}}% +\renewcommand\slantfrac{\case}% +\newcommand\onehalf{\slantfrac{1}{2}}% +\newcommand\onethird{\slantfrac{1}{3}}% +\newcommand\twothirds{\slantfrac{2}{3}}% +\newcommand\onequarter{\slantfrac{1}{4}}% +\newcommand\threequarters{\slantfrac{3}{4}}% +\newcommand\ubvr{\mbox{$U\!BV\!R$}}%% UBVR system +\newcommand\ub{\mbox{$U\!-\!B$}}% % U-B +\newcommand\bv{\mbox{$B\!-\!V$}}% % B-V +\renewcommand\vr{\mbox{$V\!-\!R$}}% % V-R +\newcommand\ur{\mbox{$U\!-\!R$}}% % U-R + +%% need this change so that it works correctly in tables: +{\catcode`\$=\active +\gdef\nodata{ ~$\cdots$~ }}% + +\newcommand\diameter{\ooalign{\hfil/\hfil\crcr\mathhexbox20D}}% +\newcommand\degr{\arcdeg}% +\newcommand\Sun{\sun}% +\newcommand\Sol{\sun}% +\newcommand\sun{\odot}% +\newcommand\Mercury{\astro{\char1}}% Mercury symbol, "1" +\newcommand\Venus{\astro{\char2}}% Venus symbol, "2" +\newcommand\Earth{\earth}% +\newcommand\Terra{\earth}% +\newcommand\earth{\oplus}% +\newcommand\Mars{\astro{\char4}}% Mars symbol, "4" +\newcommand\Jupiter{\astro{\char5}}% Jupiter symbol, "5" +\newcommand\Saturn{\astro{\char6}}% Saturn symbol, "6" +\newcommand\Uranus{\astro{\char7}}% Uranus symbol, "7" +\newcommand\Neptune{\astro{\char8}}% Neptune symbol, "8" +\newcommand\Pluto{\astro{\char9}}% Pluo symbol, "9" +\newcommand\Moon{\astro{\char10}}% Moon symbol, "M" +\newcommand\Luna{\Moon}% +\newcommand\Aries{\astro{\char11}}% +\newcommand\VEq{\Aries}% vernal equinox (Aries) +\newcommand\Taurus{\astro{\char12}}% +\newcommand\Gemini{\astro{\char13}}% +\newcommand\Cancer{\astro{\char14}}% +\newcommand\Leo{\astro{\char15}}% +\newcommand\Virgo{\astro{\char16}}% +\newcommand\Libra{\astro{\char17}}% +\newcommand\AEq{\Libra}% autumnal equinox (Libra) +\newcommand\Scorpius{\astro{\char18}}% +\newcommand\Sagittarius{\astro{\char19}}% +\newcommand\Capricornus{\astro{\char20}}% +\newcommand\Aquarius{\astro{\char21}}% +\newcommand\Pisces{\astro{\char22}}% + + +\newcommand\sbond{\chem@bnd{\@sbnd}}% +\newcommand\dbond{\chem@bnd{\@dbnd}}% +\newcommand\tbond{\chem@bnd{\@tbnd}}% +\def\chem@bnd#1{% + {% + \kern.1em\relax + \setbox\z@\hbox{M}% + \dimen@ii.8em\relax + \p@=.1em\relax + \dimen@.5\ht\z@\dimen@i-\dimen@ + \advance\dimen@1.5\p@\advance\dimen@i-1.0\p@ + #1% + \kern.1em\relax + }% + }% +\def\@sbnd{% + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@dbnd{% + \advance\dimen@-0.5\p@\advance\dimen@i0.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@tbnd{% + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% + +%\newcommand\anchor[2]{#2}% +%\renewcommand\url{\@dblarg\@url}% +%\def\@url[#1]{\anchor{#1}}% + +\let\jnl@style=\rmfamily +\def\ref@jnl#1{{\jnl@style#1}}% +\newcommand\aj{\ref@jnl{AJ}}% % Astronomical Journal +\newcommand\araa{\ref@jnl{ARA\&A}}% % Annual Review of Astron and Astrophys +\renewcommand\apj{\ref@jnl{ApJ}}% % Astrophysical Journal +\newcommand\apjl{\ref@jnl{ApJL}} % Astrophysical Journal, Letters +\newcommand\apjs{\ref@jnl{ApJS}}% % Astrophysical Journal, Supplement +\renewcommand\ao{\ref@jnl{ApOpt}}% % Applied Optics +\newcommand\apss{\ref@jnl{Ap\&SS}}% % Astrophysics and Space Science +\newcommand\aap{\ref@jnl{A\&A}}% % Astronomy and Astrophysics +\newcommand\aapr{\ref@jnl{A\&A~Rv}}% % Astronomy and Astrophysics Reviews +\newcommand\aaps{\ref@jnl{A\&AS}}% % Astronomy and Astrophysics, Supplement +\newcommand\azh{\ref@jnl{AZh}}% % Astronomicheskii Zhurnal +\newcommand\baas{\ref@jnl{BAAS}}% % Bulletin of the AAS +\newcommand\icarus{\ref@jnl{Icarus}}% % Icarus +\newcommand\jaavso{\ref@jnl{JAAVSO}} % The Journal of the American Association of Variable Star Observers +\newcommand\jrasc{\ref@jnl{JRASC}}% % Journal of the RAS of Canada +\newcommand\memras{\ref@jnl{MmRAS}}% % Memoirs of the RAS +\newcommand\mnras{\ref@jnl{MNRAS}}% % Monthly Notices of the RAS +\renewcommand\pra{\ref@jnl{PhRvA}}% % Physical Review A: General Physics +\renewcommand\prb{\ref@jnl{PhRvB}}% % Physical Review B: Solid State +\renewcommand\prc{\ref@jnl{PhRvC}}% % Physical Review C +\renewcommand\prd{\ref@jnl{PhRvD}}% % Physical Review D +\renewcommand\pre{\ref@jnl{PhRvE}}% % Physical Review E +\renewcommand\prl{\ref@jnl{PhRvL}}% % Physical Review Letters +\newcommand\pasp{\ref@jnl{PASP}}% % Publications of the ASP +\newcommand\pasj{\ref@jnl{PASJ}}% % Publications of the ASJ +\newcommand\qjras{\ref@jnl{QJRAS}}% % Quarterly Journal of the RAS +\newcommand\skytel{\ref@jnl{S\&T}}% % Sky and Telescope +\newcommand\solphys{\ref@jnl{SoPh}}% % Solar Physics +\newcommand\sovast{\ref@jnl{Soviet~Ast.}}% % Soviet Astronomy +\newcommand\ssr{\ref@jnl{SSRv}}% % Space Science Reviews +\newcommand\zap{\ref@jnl{ZA}}% % Zeitschrift fuer Astrophysik +\renewcommand\nat{\ref@jnl{Nature}}% % Nature +\newcommand\iaucirc{\ref@jnl{IAUC}}% % IAU Cirulars +\newcommand\aplett{\ref@jnl{Astrophys.~Lett.}}% % Astrophysics Letters +\newcommand\apspr{\ref@jnl{Astrophys.~Space~Phys.~Res.}}% % Astrophysics Space Physics Research +\newcommand\bain{\ref@jnl{BAN}}% % Bulletin Astronomical Institute of the Netherlands +\newcommand\fcp{\ref@jnl{FCPh}}% % Fundamental Cosmic Physics +\newcommand\gca{\ref@jnl{GeoCoA}}% % Geochimica Cosmochimica Acta +\newcommand\grl{\ref@jnl{Geophys.~Res.~Lett.}}% % Geophysics Research Letters +\renewcommand\jcp{\ref@jnl{JChPh}}% % Journal of Chemical Physics +\newcommand\jgr{\ref@jnl{J.~Geophys.~Res.}}% % Journal of Geophysics Research +\newcommand\jqsrt{\ref@jnl{JQSRT}}% % Journal of Quantitiative Spectroscopy and Radiative Trasfer +\newcommand\memsai{\ref@jnl{MmSAI}}% % Mem. Societa Astronomica Italiana +\newcommand\nphysa{\ref@jnl{NuPhA}}% % Nuclear Physics A +\newcommand\physrep{\ref@jnl{PhR}}% % Physics Reports +\newcommand\physscr{\ref@jnl{PhyS}}% % Physica Scripta +\newcommand\planss{\ref@jnl{Planet.~Space~Sci.}}% % Planetary Space Science +\newcommand\procspie{\ref@jnl{Proc.~SPIE}}% % Proceedings of the SPIE + +\newcommand\actaa{\ref@jnl{AcA}}% % Acta Astronomica +\newcommand\caa{\ref@jnl{ChA\&A}}% % Chinese Astronomy and Astrophysics +\newcommand\cjaa{\ref@jnl{ChJA\&A}}% % Chinese Journal of Astronomy and Astrophysics +\newcommand\jcap{\ref@jnl{JCAP}}% % Journal of Cosmology and Astroparticle Physics +\newcommand\na{\ref@jnl{NewA}}% % New Astronomy +\newcommand\nar{\ref@jnl{NewAR}}% % New Astronomy Review +\newcommand\pasa{\ref@jnl{PASA}}% % Publications of the Astron. Soc. of Australia +\newcommand\rmxaa{\ref@jnl{RMxAA}}% % Revista Mexicana de Astronomia y Astrofisica + +%% added feb 9, 2016 +\newcommand\maps{\ref@jnl{M\&PS}}% Meteoritics and Planetary Science +\newcommand\aas{\ref@jnl{AAS Meeting Abstracts}}% American Astronomical Society Meeting Abstracts +\newcommand\dps{\ref@jnl{AAS/DPS Meeting Abstracts}}% American Astronomical Society/Division for Planetary Sciences Meeting Abstracts + + + +\let\astap=\aap +\let\apjlett=\apjl +\let\apjsupp=\apjs +\let\applopt=\ao + +\newcommand\ulap[1]{\vbox\@to\z@{{\vss#1}}}% +\newcommand\dlap[1]{\vbox\@to\z@{{#1\vss}}}% + + +\newcounter{table@save} + +%% March 25, 2019 +%% Old v5.2 way, From Greg, This allows a number like 33N to be used +%% for a table, and the cross-references will work correctly +\newcommand\tablenum[1]{% + \def\thetable{#1}% + \xdef\@currentlabel{\thetable} +\global\advance\c@table-1\relax +}% + +\let\savetablenum\tablenum + +\def\tabletypesize#1{\gdef\currtabletypesize{#1} +\def\@table@type@size{#1}}% + +\tabletypesize{\small} +\let\tablefontsize=\tabletypesize % for compatibility with old documents + +\gdef\@tablecaption{} +\def\tablecaption#1{\gdef\@tablecaption{#1}} + +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} + +%% Used for longtable +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth +{% +\xdef \@currentlabel{\thetable} + \sbox\@tempboxa{\small #2. +%% disable trackchanges commands here, so they aren't entered 2 times: +\let\added\relax +\let\deleted\relax +\let\replaced\relax +#3}% + \ifdim\wd\@tempboxa>\hsize + \small#2. #3% + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \endgraf\vskip\baselineskip}% + \hss}} +}%% + +\let\LT@makecaption@rtx=\LT@makecaption % to fight redefinition in Revtex-4.1 + +\def\xfigure{figure} +%% from book.cls/ used?? +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip +%% \small added to keep currtabletypesize from determining size of caption + \sbox\@tempboxa{\small +%% disable trackchanges commands here, so they aren't entered 2 times: +\let\added\relax +\let\deleted\relax +\let\replaced\relax +{\bf #1.} #2}% + \ifdim \wd\@tempboxa >\hsize +\small +{\bf #1.} #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfill\box\@tempboxa\hfill}% + \fi + \vskip\belowcaptionskip +} + +\newdimen\@abovenoteskip +\newcommand\tablerefs[1]{\ifdim\@abovenoteskip=0pt\global\@abovenoteskip=10pt\fi +{\small\@tableref{\parfillskip\z@ plus1fil\relax #1\endgraf}}}% + +\def\@tableref#1{% + \par + \vspace*{3ex}% + {%\parbox{\pt@width} %%%% + {\hskip1em\rm References. --- #1}\par}% +}% + +%% march 2019, added \it to tablenotemark +\global\def\tablenotemark#1{{\normalfont\textsuperscript{\normalsize\it #1}}} +\global\def\tablenotetext#1#2{\footnotetext[#1]{\currtabletypesize\relax#2}} + +%% redefined by AH below, since it wasn't working with tabular table +\global\def\tablenotetext#1#2{\vskip-8pt\vskip1sp\flushleft{\currtabletypesize +\noindent\hskip1em $^{#1}$ #2}\vskip1sp} + +%% this version of \tablehead doesn't seem to be used, so set to \xyztablehead{} +\def\xyztablehead#1{\@table@not@headedfalse% + \kill + \caption{\\% + \@tablecaption\gdef\@currentlabel{\thetable}(0)} + \\\hline\hline% + #1\vrule height 12pt depth 10pt width 0pt\relax +\hskip\tabcolsep\\[.7ex] + \hline\\[-1.5ex] + \endfirsthead + \caption[]{--- \emph{Continued}}\\ + \hline + \hline\\[-1.7ex] + #1\hskip\tabcolsep\\[.7ex] + \hline\\[-1.5ex] + \endhead + \hline + \endfoot% +} + +\newif\if@table@not@headed + +\newlength{\table@note@skip} +\setlength{\table@note@skip}{0.5ex} +\newlength{\deluxe@table@width} +\newlength{\@d@t@a} +\newcounter{deluxe@table@num} +\newdimen\LTcapwidth + +%% \ignorespaces necessary ++== depth 6pt was depth 3pt, == added height 12pt, nov 2017 +\def\colhead#1{\multicolumn{1}{c}{\vrule depth 6pt height 12pt width +0pt\relax#1}\ignorespaces} +\def\twocolhead#1{\multicolumn{2}{c}{\hss\vrule depth 6pt height 12pt width +0pt\relax#1\hss}\ignorespaces} +\def\nocolhead#1{\multicolumn{1}{h}{}\ignorespaces} +\def\dcolhead#1{\multicolumn{1}{c}{$\vrule depth 6pt height12pt +width0pt\relax#1$}\ignorespaces} + +%\newcounter{LT@tables} +\def\tablewidth#1{% + \ifdim#1=\z@ + \else + \gdef\@d@t@@flag{1} + \if@filesw\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname deluxe@table@width@\romannumeral\c@LT@tables\endcsname + {#1}} + \fi + \fi +} + + +\def\save@natural@width{% + \ifnum\@d@t@@flag=0 + \setlength{\@d@t@a}{0pt}% + \let\@d@t@b=\LT@entry% + \def\LT@entry##1##2{\addtolength{\@d@t@a}{##2}% + }% + \expandafter\csname LT@\romannumeral\c@deluxe@table@num\endcsname + \setlength{\@d@t@a}{-\@d@t@a} + \tablewidth{\the\@d@t@a} + \def\LT@entry{\@d@t@b} + \fi +} + +\def\lt@expand@linewidth@one{\setlength\LTleft{0pt}\setlength\LTright{0pt}} +\def\lt@expand@linewidth@two{@{\extracolsep{0pt plus 1filll}}} + +\def\find@table@width{% +%%% set table width using aux file and command \tablewidth + \setcounter{deluxe@table@num}{\c@LT@tables} + \refstepcounter{deluxe@table@num} + \expandafter\ifx\csname deluxe@table@width@\romannumeral\c@deluxe@table@num\endcsname\relax + \def\@d@t@{0.999\linewidth} + \else + \edef\@d@t@{\expandafter\csname deluxe@table@width@\romannumeral\c@deluxe@table@num\endcsname} + \fi + \ifdim\@d@t@<\z@% then natural width is used + \setlength{\deluxe@table@width}{-\@d@t@} + \setlength{\LTcapwidth}{-\@d@t@} + \def\lt@expand@linewidth{\relax} + \def\lt@expand@linewidth@{} + \else% we will enclose table in the minipage of the given width and make + % longtable to span the full minipage width + \ifdim\@d@t@>\z@\else\def\@d@t@{0.999\linewidth}\fi + \setlength{\deluxe@table@width}{\@d@t@} + \setlength{\LTcapwidth}{\@d@t@} + \def\lt@expand@linewidth{\lt@expand@linewidth@one} + \def\lt@expand@linewidth@{\lt@expand@linewidth@two} + \fi +} + +\newlength{\abovedeluxetableskip} +\newlength{\belowdeluxetableskip} +\setlength{\abovedeluxetableskip}{0pt} +\setlength{\belowdeluxetableskip}{0pt} +\setlength{\tabcolsep}{5pt} + +\setlength\doublerulesep{1.5pt} +\newdimen\lastrowheight +\def\set@last@row@height{\setlength{\lastrowheight}{\ht\strutbox}\addtolength{\lastrowheight}{\dp\strutbox}\setlength{\lastrowheight}{-\arraystretch\lastrowheight}} + +\let\tableline=\colrule % Revtex said: Command \tableline is obsolete; Use \colrule instead.. + +%% +\newtoks\DT@p@ftn +\global\def\xtablenotetext@DT#1#2{ + \edef\@tempa{\the\DT@p@ftn\noexpand\tablenotemark{#1}~} + \global\DT@p@ftn\expandafter{\@tempa{\@table@type@size#2}\par}}% + +%%% AH %%%%%%%%%%%%%%%%%%%%% +\let\savedollar$ +\catcode`\$=\active +\let$\savedollar + +%% + +\def\resetdecimals{\global\let\zdoit\relax\global\let\ddoit\relax} + +\def\tableheadfrac#1{} +\newcount\pt@column +\newcount\pt@ncol + +\newcommand\tablecolumns[1]{% + \pt@column=#1\relax + \pt@ncol=#1\relax + \global\let\pt@addcol\@empty +}% + +%% from older version, probably can delete: +\def\@tablecom#1{% + \vspace*{\table@note@skip} +\par +{\parbox{\linewidth}{\hskip1em\rmfamily {\@eapj@cap@font Note}. --- #1}\par}% +}% +\def\@tableref#1{% + \vspace*{\table@note@skip} +\par +{\parbox{\linewidth}{\hskip1em\rmfamily {\@eapj@cap@font References}. --- #1}\par}% +}% +\def\spew@tblnotes{% + \@ifx@empty\tblref@list{}{% + \@tablenotes{\tblref@list}% + \vspace*{\table@note@skip}% + \global\let\tblref@list\@empty + }% + \@ifx@empty\tblnote@list{}{% + \@tablenotes{\tblnote@list}% + \vspace*{\table@note@skip}% + \global\let\tblnote@list\@empty + } + \the\DT@p@ftn% +}% + +%% for notes on emulateapj please see http://hea-www.harvard.edu/~alexey/emulateapj +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% End of code taken from emulateapj.cls %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%% New as of august 2015: + +%% These commands requested AAS +\newcommand{\noprint}[1]{} +\newcommand{\figsetstart}{{\bf Fig. Set} } +\newcommand{\figsetend}{} +\newcommand{\figsetgrpstart}{} +\newcommand{\figsetgrpend}{} +\newcommand{\figsetnum}[1]{{\bf #1.}} +\newcommand{\figsettitle}[1]{ {\bf #1}} +\newcommand{\figsetgrpnum}[1]{\noprint{#1}} +\newcommand{\figsetgrptitle}[1]{\noprint{#1}} +\newcommand{\figsetplot}[1]{\noprint{#1}} +\newcommand{\figsetgrpnote}[1]{\noprint{#1}} + +\usepackage{url} +%% if we take away the xx before UrlBreaks we will get a url that breaks +%% at any letter or number. It might be better to break only at / however... +\expandafter\def\expandafter\xxUrlBreaks\expandafter{\UrlBreaks% save the current one + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j% + \do\k\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t% + \do\u\do\v\do\w\do\x\do\y\do\z\do\A\do\B\do\C\do\D% + \do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M\do\N% + \do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X% + \do\Y\do\Z\do\1\do\2\do\3\do\4\do\5\do\6\do\7\do\8\do\9} + + +%% for tables continuing over pages +\usepackage{longtable} + +%% for editing changes +\usepackage{xcolor} +% hyperref link defaults to "blue" (0000ff) as this matches our publisher produced pdf style +\definecolor{xlinkcolor}{cmyk}{1,1,0,0} + + +\PassOptionsToPackage{hyphens}{url} +%% In response to request from AAS + \usepackage[bookmarks=true, % show bookmarks bar?/ Changed March 22, 2019 for + % improved accessibility + pdfnewwindow=true, % links in new window + colorlinks=true, % false: boxed links; true: colored links + linkcolor=xlinkcolor, % color of internal links + citecolor=xlinkcolor, % color of links to bibliography + filecolor=xlinkcolor, % color of file links + urlcolor=xlinkcolor, % color of external links + final=true, + ]{hyperref} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Additions to AASTeX by Amy Hendrickson, TeXnology Inc, August 17, 2015 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Table Tools, written by Amy Hendrickson +%% for American Astronomical Society +%% August 17, 2015 +%% array package is necessary: +\usepackage{array} + +%%%%%%%% +%% 1) h in table preamble will makes text in that column ignored. + +%%%%%%%% +%% 2) uppercase C L or R will make those columns in math mode. + +%%%%%%%% +%% 3) \begin{splittabular}{}...\end{splittabular} +%% `B' in the preamble will show where the table should be broken. It may +%% be used once in a preamble to break the table into two parts, or +%% two times in a preamble to break the table into three parts. + +%% The resulting table will position left half of table above right half of table. + +%% Care should be taken with \multicolumn so that it won't be broken between +%% the two parts of the table. You may need to shorten the \multicolumn argument +%% for number of columns to be appropriate to the number of columns in +%% the new split table. + +%% In this example, for instance, we start with: +%% \begin{tabular}{ccccccc} +%% \multicolumn{7}{c}{\textsc{Table 1}} +%% and change it to: +%% \begin{splittabular}{ccccBccc} +%% \multicolumn{4}{c}{\textsc{Table 1}}\\ +%% +%% If you'd like to have a table number in the second half of the table, +%% you can ask for a second multicolumn command that will position at the +%% top of the second half of the table: +%% +%% \begin{splittabular}{ccccBccc} +%% \multicolumn{4}{c}{\textsc{Table 1}}&\multicolumn{3}{c}{\textsc{Table 1, Continued}}\\ +%% +%% You can do the same for the caption, and give a Continued caption for +%% the second half of the table. Originally: +%% \multicolumn{7}{c}{\textsc{Log of \textit{HST} Observations for +%% NGC~6388}} +%% Now, changed so that we get a caption on both halves of the table: +%% \multicolumn{4}{c}{\textsc{Log of \textit{HST} Observations for +%% NGC~6388}}&\multicolumn{3}{c}{\textsc{Log of \textit{HST} Observations for +%% NGC~6388, Continued}}\\ +%% +%% Similarly, you can rearrange table notes to appear at the bottom of +%% the appropriate half of the table. For instance, starting with this, +%% which would make table notes both appear at the bottom of the top half +%% of the table: +%% \multicolumn{4}{l}{\small{$\dagger$ Average distance of data set from +%% cluster center.}}\\ +%% \multicolumn{4}{l}{$^{\rm a}$SNAP program.}\\ +%% +%% We may substitute the following: +%% \multicolumn{4}{l}{$^{\rm a}$SNAP program.}&\multicolumn{3}{l}{\small{$\dagger$ Average distance of data set from +%% cluster center.}}\\ +%% +%% Which will produce the first endnote underneath the top half of the +%% table, and the second underneath the bottom half. +%% +%% Another option would be to have both endnotes appear below the bottom +%% half of the table. Easily done: +%% &&&&\multicolumn{3}{l}{$^{\rm a}$SNAP program.}\\ +%% &&&&\multicolumn{3}{l}{\small{$\dagger$ Average distance of data set from +%% cluster center.}}\\ +%% %% %% %% %% %% %% + +%%%%%%%% +%% 4) \colnumbers will make line with column numbers automatic. It will work with splittabular +%% and splitdeluxetable as well as tabular. +%% To use: type in \colnumbers within the table whereever you'd like it to appear, typically +%% underneath the column headers, before the lines of data. + +%%%%%%%% +%% 5) Easy Decimal numbering +%% How to make decimal numbers in tables line up on the period: + +%% Use D (for decimal column) in table preamble for every decimal number. The decimal +%% numbers will use two columns, one for the left part of the decimal +%% number and one for the right part. + +%% D may be used more than once in a table preamble. + +%% If you want to type in a column header over the decimal +%% numbers, please use \multicolumn2c{} to span both columns. + +%% After the column headers, to start decimal numbering, +%% type in \decimals in the body of the table. + +%% When entering decimal numbers +%% remember to leave a space after the decimal number, before the following &. +%% For instance: &22.3 &35.96 \\ + +%% If you'd like an empty entry, please supply a period and a space: & . &. You +%% will not see the period in the resulting table. + +%% example: +% \begin{tabular}{rDD} +% \hline +% &&&\multicolumn2c{\bf More}\\ +% &\multicolumn2c{\bf Decimals}&\multicolumn2c{\bf Decimals}\\ +% \hline +% \hline +% \decimals +% one& . &34.2 \\ +% two &567.0 &21345 \\ +% three&.0 &62.5 \\ +% four&245 &5034.349923 \\ +% five&21 & \\ +% six& &21.6 +% \end{tabular} +%% +% Decimal numbering works within \begin{splittabular}...\end{splittabular} +% \begin{splitdeluxetable} and \end{splitdeluxetable} for tables broken into two +% or three parts. \colnumbers will number the columns counting both sides +% of the decimal number as one column; \tablehead{\colhead{}...} will make +% the column headers position above the two columns used for one decimal +% number as well. +% +% Decimal numbers will be in math mode so that plus and minus signs are printed +% correctly, expressions like `$\pm$ 1.2' or `\pm 1.2', will both work +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\let\savedollar$ +\catcode`\$=\active + +\let\savetabular\tabular +\def\tabular{\catcode`\&=\active\relax\catcode`\$=\active\relax\hskip\movetableright +\savetabular} +\long\gdef\eatone{\setbox0=\hbox\bgroup\savedollar\let$\relax} +\gdef\endeatone{\savedollar\egroup\hskip-2\tabcolsep} + +%% Hide, important because it allows us to split tables horizontally +\newcolumntype{h}{>\eatone c<\endeatone} + +\newcolumntype{C}{>{\bgroup\savedollar\let$\relax}c<{\savedollar\egroup}} +\newcolumntype{L}{>{\bgroup\savedollar\let$\relax}l<{\savedollar\egroup}} +\newcolumntype{R}{>{\bgroup\savedollar\let$\relax}r<{\savedollar\egroup}} + +\newcolumntype{B}{>\eatone c<\endeatone} %% used for \splittabular to indicate break in + %% two or three parts of table + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Split tables into 2 or 3 parts; stack the parts +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Process table preamble + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Count number of columns in preamble + +\newcount\colcount +\newcount\firstcolcount +\newcount\secondcolcount +\newcount\thirdcolcount +\newcount\columncount + +%% \makeatother is necessary to keep @ from being treated as a letter +%% when counting the number of columns in table. +\makeatother +\def\xD{D} +\def\xaster{*} +\newcount\howmanyDs +\newcount\firsthowmanyDs +\newcount\secondhowmanyDs + +\newif\ifD + +\def\countcols#1{\ifcat#1c +\global\advance\colcount by 1\relax\fi +%% +\def\lookforD{#1} +\ifx\lookforD\xD +\global\advance\howmanyDs by 1 +\global\advance\colcount by1\relax +\fi +%% +\futurelet\next\lookatnext +} +\makeatletter + +\def\xeatone#1{\countcols} +\def\xrelax{\relax} + +%% second conditional deals with expressions like @{} in +%% the preamble. +\def\lookatnext{\if\next\xrelax\let\go\relax +\else +\ifx\next\bgroup\let\go\xeatone\else +\let\go\countcols\fi\fi\go} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% reset line counting at \\ + +%% arraycr redefined to match revtex4-1 +\def\new@arraycr{\relax +\global\columncount=0\relax +\global\colheadcount=0\relax +\iffalse {\fi \ifnum 0=`}\fi \@ifstar {\global \@tbpen \@M \@xarraycr} +{\global \@tbpen \intertabularlinepenalty \@xarraycr}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Redefining & is necessary to get around \omit in \multicolumn, +%% which prevents @{} from being used to change the meaning of multicolumn. +%% Now column number and top or bottom table is used to determine whether +%% multicolumn should be turned on or off. +\let\saveampersand& + +\newif\iffirstbox +\newif\ifsecondbox +\newif\ifthirdbox + +\long\gdef\CheckNumberAndSwitch{\unskip\global\advance\columncount by 1\relax% +\saveampersand} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Parse and count preamble + +\def\catchfirstpreamble#1B#2Z{%firstpreamble +\def\leftpreamble{#1\relax} +\colcount=0 +\global\howmanyDs=0\relax +\expandafter\countcols\leftpreamble +\global\firstcolcount\the\colcount +\global\firsthowmanyDs\the\howmanyDs +\ifnum\firstcolcount>25 +\typeout{^^J +----------------------------------------------------- +^^J +Warning! +^^J^^J +Too many columns in first part of table! +^^J^^J +Maximum number of columns in each part of the table is 25. Each `D' counts as two columns. +^^J +----------------------------------------------------- +}\fi +\global\howmanyDs=0\relax +\global\colcount=0\relax +\newcolumntype{A}{#1}} + +\def\catchsecondpreamble#1B#2Z{%secondpreamble +\def\rightpreamble{#2\relax} +\colcount=0 +\expandafter\countcols\rightpreamble +\global\secondcolcount\colcount +\global\secondhowmanyDs\the\howmanyDs +\ifnum\secondcolcount>25 +\typeout{^^J----------------------------------------------------- +^^J +Warning! +^^J^^J +Too many columns in second part of table! +^^J^^J +Maximum number of columns in each part of the table is 25. Each `D' counts as two columns. +^^J +----------------------------------------------------- +}\fi +\global\totalcolumns=\firstcolcount +\global\advance\totalcolumns by \secondcolcount +\global\colcount=0\relax +\newcolumntype{Z}{#2}} + + +\def\catchsecondofthreepreamble#1B#2B#3Z{%secondpreamble +\def\rightpreamble{#2\relax} +\colcount=0 +\howmanyDs=0 +\expandafter\countcols\rightpreamble +\global\secondcolcount\colcount +\global\secondhowmanyDs\the\howmanyDs +\global\totalcolumns=\firstcolcount +\global\advance\totalcolumns by \secondcolcount +\global\colcount=0\relax +\newcolumntype{Z}{#2}} + + +\def\catchthirdpreamble#1B#2B#3Z{%firstpreamble +\def\thirdpreamble{#3} +\colcount=0 +\expandafter\countcols\thirdpreamble +\global\thirdcolcount\the\colcount +\global\advance\totalcolumns by \thirdcolcount +\global\colcount=0\relax +\newcolumntype{z}{#3}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Define splittabular/endsplittabular + +\newcount\PartsOfTable +\newif\ifbreaktab + +\def\checkforB #1B#2B#3B{ +%% defaults, may be used in \colnumbers +\gdef\tabfullpreamble{#1#2#3\relax} +\gdef\firstpreamble{#1} +\gdef\secondpreamble{#2} +\gdef\thirdpreamble{#3} +\ifx\thirdpreamble\empty +\global\PartsOfTable=2 +\else +\global\PartsOfTable=3 +\fi +} + +\def\lookforD#1{\def\zone{#1}\ifx\zone\xD +\global\Dtrue\else\Dfalse\fi} + +\newcount\columnoneandtwo +\newif\ifdonullmulticol + +\newcount\colnumsused +\newcount\loopnum + +\catcode`\&=\active +\let&\CheckNumberAndSwitch +\let$\savedollar + +%sss +\def\splittabular{\catcode`\&=\active +\catcode`\$=\active +\global\colnumbersonfalse +\let\colnumbers\savesplitplaincolnumbers +\let\splitdecimalcolnumbers\savesplitdecimalcolnumbers +\def\decimalcolnumbers{\splitdecimalcolnumbers} +\xsplittabular} + +\def\xsplittabular#1#2\end{{ +\global\firsttimetrue +\let&\CheckNumberAndSwitch +\let$\savedollar +%%% +\def\endtabular{\endarray +\global\let\zdoit\relax +\global\let\ddoit\relax +\global\Dfalse} +\setbox0=\hbox{\def\firstarg{#1}\expandafter\lookforD\firstarg} +\PartsOfTable=0 +\def\tempfullpreamble{#1BB} +\setbox0=\hbox{\expandafter\checkforB\tempfullpreamble} +%% Now PartsOfTable is either =2 or 3 +%% +\global\colnumsused=0 +\global\breaktabtrue +\global\colcount=0 +%% +\ifnum\PartsOfTable=3 +\let\multicolumn\threebreakmulticolumn +\else +\let\multicolumn\breakmulticolumn +\fi +%% +\def\one{#1Z}%% full preamble +\ifnum\PartsOfTable=3 +\expandafter\catchfirstpreamble\one +\expandafter\catchsecondofthreepreamble\one +\expandafter\catchthirdpreamble\one +\makefirstdummycolumns %f +\makeseconddummycolumns %F +\makethirddummycolumns %E +\else %% PartsOfTable=2 +\expandafter\catchfirstpreamble\one +\expandafter\catchsecondpreamble\one +\makefirstdummycolumns %f +\makeseconddummycolumns %F +\fi +%%% +\global\columncount=0 +\ifnum\PartsOfTable=3 +%% For table divided into three parts !! +\firstboxtrue\secondboxfalse\thirdboxfalse +% +\setbox\firsttablebox=\hbox{% +\begin{tabular}{AFE}% +#2\crcr +\end{tabular}} +% +\hbox to \hsize{\hss\unhbox\firsttablebox\hss} +\vskip6pt +\hrule +\vskip6pt +\global\columncount=0 +\firstboxfalse\secondboxtrue\thirdboxfalse +\ifcolnumberson +\let\colnumbers\xplain +\setbox\secondtablebox=\hbox{% +\begin{tabular}{fZE}% fZE +#2\crcr\end{tabular}} +\else +\setbox\secondtablebox=\hbox{ +\begin{tabular}{fZE}% fZE +#2 +\end{tabular}} +\fi +\hbox to \hsize{\hss\unhbox\secondtablebox\hss} +%% +\vskip6pt +\hrule +\vskip6pt +\firstboxfalse\secondboxfalse\thirdboxtrue +\global\columncount=0 +\ifcolnumberson +\let\colnumbers\xplain +\setbox\thirdtablebox=\hbox{% +\begin{tabular}{fFz}% fFz +#2\crcr\end{tabular}} +\else +\setbox\thirdtablebox=\hbox{ +\begin{tabular}{fFz}% fFz +#2 +\end{tabular}} +\fi +\hbox to \hsize{\hss\unhbox\thirdtablebox\hss} +\else +%% +%% For table divided into two parts: +%% +\global\columncount=0 +\secondboxfalse + \setbox\firsttablebox=\hbox{% +\begin{tabular}{AF}% should be AF +#2 +\end{tabular} +} + \hbox to \hsize{\hss\unhbox\firsttablebox\hss} +\vskip6pt +\hrule +\vskip6pt +\global\columncount=0 +\secondboxtrue +\ifcolnumberson +\setbox\secondtablebox=\hbox{\let\colnumbers\xplain +\begin{tabular}{fZ}% should be fZ +#2 +\end{tabular} +} +\else +\setbox\secondtablebox=\hbox{ +\begin{tabular}{fZ}% should be fZ +#2 +\end{tabular} +} +\fi +\hbox to \hsize{\hss\unhbox\secondtablebox\hss} +%% +%% end of conditional testing for 2 or 3 part table: +\fi +%\global\breaktabfalse +} +\firsthowmanyDs=0 +\secondhowmanyDs=0 +\resetdecimals +\end +} + +%yyy +\def\endsplittabular{\global\firsttimefalse\global\colnumbersonfalse +\global\let\splitplaincolnumbers\savesplitplaincolnumbers +\global\breaktabfalse} + +\long\gdef\breakmulticolumn#1#2#3{% +\multispan{#1}% +\let&\CheckNumberAndSwitch +\ifsecondbox% +\ifnum\columncount<\firstcolcount% +\global\donullmulticoltrue% +\else% +\global\donullmulticolfalse% +\fi% +%%% + \else% first box +\ifnum\columncount<\firstcolcount% +\global\donullmulticolfalse% +\else% +\global\donullmulticoltrue% +\fi% +\fi% +\ifdonullmulticol% +\global\advance\colheadcount by 1\relax +\begingroup + \def\@addamp{\if@firstamp \@firstampfalse \else + \@preamerr 5\fi}% + \@mkpream{h}\@addtopreamble\@empty + \endgroup + \def\@sharp{}% +%% comment out \@arstrut to prevent blank line where multicolumn was found +%% on other parts of the table, but not on the current part. + \@arstrut +\@preamble + \null\ignorespaces +\else% +\begingroup + \def\@addamp{\if@firstamp \@firstampfalse \else + \@preamerr 5\fi}% + \@mkpream{#2}\@addtopreamble\@empty + \endgroup + \def\@sharp{#3}% + \@arstrut \@preamble + \null\ignorespaces +\fi% +\global\donullmulticolfalse% +\global\advance\columncount by #1\relax% +\global\advance\columncount-1\relax% +} + + +\long\gdef\threebreakmulticolumn#1#2#3{% +\multispan{#1}% +\columnoneandtwo=\firstcolcount\relax% +\advance\columnoneandtwo by \secondcolcount\relax% +%% +\global\donullmulticoltrue\relax% +\iffirstbox\relax% +\ifnum\columncount<\firstcolcount% +\global\donullmulticolfalse% +\fi\relax% +\ifnum\columncount=\firstcolcount\relax% +\donullmulticoltrue\fi\relax% +\else\relax% +%% +\ifsecondbox% +\ifnum\columncount=\firstcolcount\relax% +\global\donullmulticolfalse\fi\relax% +\ifnum\columncount>\firstcolcount% +\ifnum\columncount<\columnoneandtwo\relax% +\global\donullmulticolfalse\relax% +\fi\fi\relax% +\else\relax% +%%% +\ifthirdbox% +\ifnum\columncount<\columnoneandtwo% +\global\donullmulticoltrue% +\else\relax% +\global\donullmulticolfalse% +\fi\relax% +\fi%% end if third box +\fi%% end if second box +\fi%% end if first box +%% +\ifdonullmulticol% +\begingroup\relax% +\global\advance\colheadcount by 1\relax% + \def\@addamp{\if@firstamp \@firstampfalse \else% + \@preamerr 5\fi}% + \@mkpream{h}\@addtopreamble\@empty% + \endgroup% + \def\@sharp{}% +%% comment out \@arstrut to prevent blank line where multicolumn was found +%% on other parts of the table, but not on the current part. + \@arstrut \@preamble% + \null\ignorespaces +\else% +\begingroup% + \def\@addamp{\if@firstamp \@firstampfalse \else% + \@preamerr 5\fi}% + \@mkpream{#2}\@addtopreamble\@empty% + \endgroup% + \def\@sharp{#3}% + \@arstrut \@preamble% + \null\ignorespaces +\fi% +\global\donullmulticolfalse% +\global\advance\columncount by #1\relax% +\global\advance\columncount-1\relax% +} + +%% First dummy columns is the part of the table that will not print, +%% in this case the first part to the left. +%%\makefirstdummycolumns +%% +%% and second dummy columns +%% \makeseconddummycolumns. +\gdef\makefirstdummycolumns{ +\ifcase\firstcolcount +\or% 1 +\newcolumntype{f}{h} % no D possible +%%%%%%%%%%%%%%%%%% +\or% 2 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hh}%% 0 + \or + \newcolumntype{f}{d} %% 1 + \fi +%%%%%%%%%%%%%%%%%% +\or% 3 + \ifcase\firsthowmanyDs% + \newcolumntype{f}{hhh}% 0 + \or% + \newcolumntype{f}{dh}% 1 + \fi% +%%%%%%%%%%%%%%%%%% +\or% 4 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhh} % 0 + \or + \newcolumntype{f}{dhh} % 1 + \or + \newcolumntype{f}{dd} % 2 + \fi +%%%%%%%%%%%%%%%%%% +\or% 5 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh} % 0 + \or + \newcolumntype{f}{dhhh} % 1 + \or + \newcolumntype{f}{ddh} % 2 + \fi +%%%%%%%%%%%%%%%%%% +\or% 6 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhh} % 0 + \or + \newcolumntype{f}{dhhhh} % 1 + \or + \newcolumntype{f}{ddhh} % 2 + \or + \newcolumntype{f}{ddd} % 3 + \fi +%%%%%%%%%%%%%%% +\or % 7 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhh} % 1 + \or + \newcolumntype{f}{ddhhh} % 2 + \or + \newcolumntype{f}{dddh} % 3 + \fi +%%%%%%%%%%%%%%%%%% +\or % 8 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhh} % 2 + \or + \newcolumntype{f}{dddhh} % 3 + \or + \newcolumntype{f}{dddd} % 4 + \fi +%%%%%%%%%%%%%%%%%% +\or % 9 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhh} % 2 + \or + \newcolumntype{f}{dddhhh} % 3 + \or + \newcolumntype{f}{ddddh} % 4 + \fi +%%%%%%%%%%%%%%%%%% +\or %10 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhh} % 3 + \or + \newcolumntype{f}{ddddhh} % 4 + \or + \newcolumntype{f}{ddddd} % 5 + \fi +%%%%%%%%%%%%%%%%%% +\or % 11 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhh} % 4 + \or + \newcolumntype{f}{dddddh} % 5 + \fi +%%%%%%%%%%%%%%%%%% +\or % 12 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhh} % 4 + \or + \newcolumntype{f}{dddddhh} % 5 + \or + \newcolumntype{f}{dddddd} % 6 + \fi +%%%%%%%%%%%%%%%%%% +\or %13 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhh} % 5 + \or + \newcolumntype{f}{ddddddh} % 6 + \fi +%%%%%%%%%%%%%%%%%% +\or %14 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhh} % 5 + \or + \newcolumntype{f}{ddddddhh} % 6 + \or + \newcolumntype{f}{ddddddd} % 7 + \fi +%%%%%%%%%%%%%%%%%% +\or %15 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhh} % 6 + \or + \newcolumntype{f}{dddddddh} % 7 + \fi +%%%%%%%%%%%%%%%%%% +\or %16 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhh} % 6 + \or + \newcolumntype{f}{dddddddhh} % 7 + \or + \newcolumntype{f}{dddddddd} % 8 +\fi +%%%%%%%%%%%%%%%%%% +\or %17 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhh} % 7 + \or + \newcolumntype{f}{ddddddddh} % 8 +\fi +%%%%%%%%%%%%%%%%%% +\or %18 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhh} % 6 + \or + \newcolumntype{f}{ddddddhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhh} % 8 + \or + \newcolumntype{f}{ddddddddd} % 9 +\fi +%%%%%%%%%%%%%%%%%% +\or %19 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhh} % 8 + \or + \newcolumntype{f}{ddddddddddh} % 9 +\fi +%%%%%%%%%%%%%%%%%% +\or %20 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhh} % 8 + \or + \newcolumntype{f}{dddddddddhh} % 9 + \or + \newcolumntype{f}{dddddddddd} % 10 + \fi +%%%%%%%%%%%%%%%%%% +\or %21 + \ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh h} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhhh} % 8 + \or + \newcolumntype{f}{ddd ddd ddd hhh} % 9 + \or + \newcolumntype{f}{ddd ddd ddd d h} % 10 + \fi +%%%%%%%%%%%%%%%%%% +\or %22 +\ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh hh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhhhh} % 8 + \or + \newcolumntype{f}{ddd ddd ddd hhhh} % 9 + \or + \newcolumntype{f}{ddd ddd ddd dhh} % 10 + \or + \newcolumntype{f}{ddddddddddd} % 11 + \fi +%%%%%%%%%%%%%%%%%% +\or %23 +\ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh hhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhhhhh} % 8 + \or + \newcolumntype{f}{ddd ddd ddd hhhhh} % 9 + \or + \newcolumntype{f}{ddddddddddhhh} % 10 + \or + \newcolumntype{f}{ddddd ddddd dh} % 11 + \fi +%%%%%%%%%%%%%%%%%% +\or %24 +\ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh hhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhhhhhh} % 8 + \or + \newcolumntype{f}{ddd ddd ddd hhhhhh} % 9 + \or + \newcolumntype{f}{ddddddddddhhhh} % 10 + \or + \newcolumntype{f}{ddddd ddddd dhh} % 11 + \or + \newcolumntype{f}{ddddd ddddd dd} % 12 + \fi +%%%%%%%%%%%%%%%%%% +\or %25 +\ifcase\firsthowmanyDs + \newcolumntype{f}{hhhhh hhhhh hhhhh hhhhh hhhhh} % 0 + \or + \newcolumntype{f}{dhhhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{f}{ddhhhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{f}{dddhhhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{f}{ddddhhhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{f}{dddddhhhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{f}{ddddddhhhhhhhhhhhhh} % 6 + \or + \newcolumntype{f}{dddddddhhhhhhhhhhh} % 7 + \or + \newcolumntype{f}{ddddddddhhhhhhhhh} % 8 + \or + \newcolumntype{f}{ddd ddd ddd hhhhhhh} % 9 + \or + \newcolumntype{f}{ddddddddddhhhhh} % 10 + \or + \newcolumntype{f}{dddddddddddhhh} % 11 + \or + \newcolumntype{f}{ddddddddddddh} % 12 + \fi +%%%%%%%%%%%%%%%%%% +\else +\typeout{^^J----------------------------------------------------- ^^J +Warning!^^J^^J +Too many Columns using in Splittabular. +^^J +25 column maximum in +each part of the table.^^J Each`T' counts as two columns. +^^J-----------------------------------------------------^^J} +\fi +} + + +%% Second dummy columns is the part of the table that will not print, +%% in this case the part to the right. +%%\makeseconddummycolumns + +\gdef\makeseconddummycolumns{% +\ifcase\secondcolcount +%0 +\or +%1 +\newcolumntype{F}{h} % no D possible +%%%%%%%%%%%%%%%%%% +\or +%2 + \ifcase\secondhowmanyDs + \newcolumntype{F}{hh}%% 0 + \or + \newcolumntype{F}{d} %% 1 + \fi +%%%%%%%%%%%%%%%%%% +\or +%3 + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhh} % 0 + \or + \newcolumntype{F}{dh} % 1 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhh} % 0 + \or + \newcolumntype{F}{dhh} % 1 + \or + \newcolumntype{F}{dd} % 2 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh} % 0 + \or + \newcolumntype{F}{dhhh} % 1 + \or + \newcolumntype{F}{ddh} % 2 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhh} % 0 + \or + \newcolumntype{F}{dhhhh} % 1 + \or + \newcolumntype{F}{ddhh} % 2 + \or + \newcolumntype{F}{ddd} % 3 + \fi +%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhh} % 1 + \or + \newcolumntype{F}{ddhhh} % 2 + \or + \newcolumntype{F}{dddh} % 3 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhh} % 2 + \or + \newcolumntype{F}{dddhh} % 3 + \or + \newcolumntype{F}{dddd} % 4 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhh} % 2 + \or + \newcolumntype{F}{dddhhh} % 3 + \or + \newcolumntype{F}{ddddh} % 4 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhh} % 3 + \or + \newcolumntype{F}{ddddhh} % 4 + \or + \newcolumntype{F}{ddddd} % 5 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhh} % 4 + \or + \newcolumntype{F}{dddddh} % 5 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhh} % 4 + \or + \newcolumntype{F}{dddddhh} % 5 + \or + \newcolumntype{F}{dddddd} % 6 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhh} % 5 + \or + \newcolumntype{F}{ddddddh} % 6 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhh} % 5 + \or + \newcolumntype{F}{ddddddhh} % 6 + \or + \newcolumntype{F}{ddddddd} % 7 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhh} % 6 + \or + \newcolumntype{F}{dddddddh} % 7 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhh} % 6 + \or + \newcolumntype{F}{dddddddhh} % 7 + \or + \newcolumntype{F}{dddddddd} % 8 +\fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhh} % 7 + \or + \newcolumntype{F}{ddddddddh} % 8 +\fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhh} % 8 + \or + \newcolumntype{F}{ddddddddd} % 9 +\fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhhhhhhhhhhhhhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhh} % 8 + \or + \newcolumntype{F}{dddddddddh} % 9 +\fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhh} % 8 + \or + \newcolumntype{F}{dddddddddhh} % 9 + \or + \newcolumntype{F}{dddddddddd} % 10 + \fi +%%%%%%%%%%%%%%%%%% +\or + \ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh h} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhhh} % 8 + \or + \newcolumntype{F}{ddd ddd ddd hhh} % 9 + \or + \newcolumntype{F}{ddd ddd ddd d h} % 10 + \fi +%%%%%%%%%%%%%%%%%% +\or +\ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh hh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhhhh} % 8 + \or + \newcolumntype{F}{ddd ddd ddd hhhh} % 9 + \or + \newcolumntype{F}{ddddddddddhh} % 10 + \or + \newcolumntype{F}{ddddddddddd} % 11 + \fi +%%%%%%%%%%%%%%%%%% +\or +\ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh hhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhhhhh} % 8 + \or + \newcolumntype{F}{ddd ddd ddd hhhhh} % 9 + \or + \newcolumntype{F}{ddddddddddhhh} % 10 + \or + \newcolumntype{F}{ddddd ddddd dh} % 11 + \fi +%%%%%%%%%%%%%%%%%% +\or +\ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh hhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhhhhhh} % 8 + \or + \newcolumntype{F}{ddd ddd ddd hhhhhh} % 9 + \or + \newcolumntype{F}{ddddddddddhhhh} % 10 + \or + \newcolumntype{F}{ddddd ddddd dhh} % 11 + \or + \newcolumntype{F}{ddddd ddddd dd} % 12 + \fi +%%%%%%%%%%%%%%%%%% +\or +\ifcase\secondhowmanyDs + \newcolumntype{F}{hhhhh hhhhh hhhhh hhhhh hhhhh} % 0 + \or + \newcolumntype{F}{dhhhhhhhhhhhhhhhhhhhhhhh} % 1 + \or + \newcolumntype{F}{ddhhhhhhhhhhhhhhhhhhhhh} % 2 + \or + \newcolumntype{F}{dddhhhhhhhhhhhhhhhhhhh} % 3 + \or + \newcolumntype{F}{ddddhhhhhhhhhhhhhhhhh} % 4 + \or + \newcolumntype{F}{dddddhhhhhhhhhhhhhhh} % 5 + \or + \newcolumntype{F}{ddddddhhhhhhhhhhhhh} % 6 + \or + \newcolumntype{F}{dddddddhhhhhhhhhhh} % 7 + \or + \newcolumntype{F}{ddddddddhhhhhhhhh} % 8 + \or + \newcolumntype{F}{ddd ddd ddd hhhhhhh} % 9 + \or + \newcolumntype{F}{ddddddddddhhhhh} % 10 + \or + \newcolumntype{F}{ddddd ddddd dhhh} % 11 + \or + \newcolumntype{F}{ddddd ddddd ddh} % 12 + \fi +%%%%%%%%%%%%%%%%%% +\else +\typeout{^^J----------------------------------------------------- ^^J +Warning!^^J^^J +Too many Columns using in Splittabular. +^^J +25 column maximum in +each part of the table.^^J Each`D' counts as two columns. +^^J-----------------------------------------------------^^J} +\fi +} + +%% we don't have to worry about D's in this section, fortunately. +\gdef\makethirddummycolumns{ +\ifcase\thirdcolcount +\or\newcolumntype{E}{h} +\or\newcolumntype{E}{hh} +\or\newcolumntype{E}{hhh} +\or\newcolumntype{E}{hhhh} +\or\newcolumntype{E}{hhhhh} +\or\newcolumntype{E}{hhhhhh} +\or\newcolumntype{E}{hhhhhhh} +\or\newcolumntype{E}{hhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhhhhhh} +\or\newcolumntype{E}{hhhhhhhhhhhhhhhhhhhhhhhhh} %% up to 25 columns +\else \typeout{^^J-----------------------------------------------------^^J +Warning! +^^J^^J Too many Columns in Splittabular. +^^J +25 column maximum in +each part of the table.^^J +Each `D' counts as two columns. +^^J-----------------------------------------------------^^J}\fi +} + +%%%%%%%%%%%%%%%%% +%% Colnums + +%% defaults + +\gdef\settabnumdefaults{% +\loopnum=0\relax\loop% +\ifnum\loopnum<31\relax% +\expandafter\gdef\csname tab\the\loopnum\endcsname{% +\multicolumn1{c}{\global\advance\colnumsused by 1\relax% +(\the\colnumsused)}}% +\global\advance\loopnum by1\repeat} + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% this version of countcols is for \colnumbers +\newcount\totalcolumncount +\def\xH{h} + +\makeatother +\def\tabcountcols#1{\ifcat#1c +\global\advance\colcount by 1\relax\fi% +%% +\def\lookforD{#1}% +\ifx\lookforD\xD% +\expandafter\gdef\csname tab\the\colcount\endcsname{% +\multicolumn2{c}{\global\advance\colnumsused by 1\relax% +(\the\colnumsused)}}% +\fi% +\ifx\lookforD\xH% +\expandafter\gdef\csname tab\the\colcount\endcsname{% +\multicolumn1{h}{}}% +\fi% +%% +\futurelet\next\tablookatnext} + +\def\tabxeatone#1{\tabcountcols} + +%% second conditional deals with expressions like @{} in +%% the preamble. +\def\tablookatnext{\if\next\xrelax\let\xgo\relax\else% +\ifx\next\bgroup\let\xgo\tabxeatone\else\let\xgo\tabcountcols\fi\fi\xgo} +\makeatletter +%%%%%%%%%%%%%%% + +\newcount\totalcolumns +\newbox\firsttablebox +\newbox\secondtablebox +\newbox\thirdtablebox +\newif\ifdbreaktab + +%% A loop would be more elegant, of course, but using & in a loop +%% within a table column produces errors. +%% was\tabnumberline, now \colnumbers + +%% Is this test necessary? +%\newif\ifcolumnums + +\newif\ifcolnumberson +\def\deluxecolnumbers{\global\colnumbersontrue} + +\def\colnumbers{\omit\\\omit\xcolnumbers} +\def\xcolnumbers{\global\let\colnumbers\xcolnumbers% +\global\colnumbersontrue\let&\CheckNumberAndSwitch% +\global\colcount=0\relax% +\global\totalcolumncount=0\relax% +%% above here +\settabnumdefaults% +%% Now, change the columns that have `D' to be \multicolumn2c, by redefining +%% the \csname tab\endcsname +%% +\expandafter\tabcountcols\tabfullpreamble% +\global\totalcolumncount=\the\colcount\relax% +\global\colcount=0\relax% +\ifbreaktab\else\ifdbreaktab\else\global\colnumsused=0\relax\fi\fi% +%% +% +\ifdeluxe\ifbreaktab\\\else\\[-6pt]\fi%\hline% not above +\else% +\\[-14pt]\fi% +\ifcase\totalcolumncount% +\or% +\csname tab1\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&%% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname% +\or +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname% +\or%22 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname% +\or% 24 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname% +\or% 25 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname% +\or% 27 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname% +\or% 28 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname% +\or% 29 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname% +\or% 30 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname&\csname tab30\endcsname% +\else% +\typeout{^^J^^J +Sorry, more than 30 columns cannot be numbered with^^J +\string\colnumbers. Please number the columns manually.^^J +Thank you!^^J}\fi% +%\ifbreaktab +\\\hline% below, hline is wanted +%\else +\noalign{\vskip-8pt} +%\vrule height 28pt width0pt %the \vrule is in the line below colnumbers; + % it causes all the vrules on that line to grow to 28pt. + % The -14pt will cause the lower line to overlap the upper line. + % Complication, needed to add this vrule to Z and z in order to + % have it also work for split tabular. +%\fi +} + + + +\let\savecolnumbers\colnumbers + +\gdef\plaincolnumbers{% +\omit\\\omit% +\global\colnumbersontrue\let&\CheckNumberAndSwitch% +\global\colcount=0\relax% +\global\totalcolumncount=0\relax% +%% above here +\settabnumdefaults% +%% Now, change the columns that have `D' to be \multicolumn2c, by redefining +%% the \csname tab\endcsname +%% +\expandafter\tabcountcols\tabfullpreamble% +\global\totalcolumncount=\the\colcount\relax% +\global\colcount=0\relax% +\ifbreaktab\else\ifdbreaktab\else\global\colnumsused=0\relax\fi\fi% +%% +\\\ifcase\totalcolumncount% +\or% +\csname tab1\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&%% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname% +\or +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname% +\or%22 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname% +\or% 24 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname% +\or% 25 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname% +\or% 27 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname% +\or% 28 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname% +\or% 29 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname% +\or% 30 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname&\csname tab30\endcsname% +\else% +\typeout{^^J^^J +Sorry, more than 30 columns cannot be numbered with^^J +\string\colnumbers. Please number the columns manually.^^J +Thank you!^^J}\fi% +\\\hline% below, hline is wanted +\\\noalign{\vskip-30pt }%%%%% +%\vrule height 28pt width0pt %the \vrule is in the line below colnumbers; + % it causes all the vrules on that line to grow to 28pt. + % The -14pt will cause the lower line to overlap the upper line. + % Complication, needed to add this vrule to Z and z in order to + % have it also work for split tabular. +} + +\let\saveplaincolnumbers\plaincolnumbers + + +\def\splitplaincolnumbers{% +\omit\\\omit% +\xplain} + +\let\savesplitplaincolnumbers\splitplaincolnumbers + +\newif\iffirsttime +\firsttimetrue +\gdef\xplain{% +\global\let\plaincolnumbers\xplain% +\global\colnumbersontrue\let&\CheckNumberAndSwitch% +\global\colcount=0\relax% +\global\totalcolumncount=0\relax% +%% above here +\settabnumdefaults% +%% Now, change the columns that have `D' to be \multicolumn2c, by redefining +%% the \csname tab\endcsname +%% +\expandafter\tabcountcols\tabfullpreamble% +\global\totalcolumncount=\the\colcount\relax% +\global\colcount=0\relax% +\ifbreaktab\else\ifdbreaktab\else\global\colnumsused=0\relax\fi\fi% +%% +\iffirsttime +\\%\hline% above not wanted +\else +\\[-12pt]%\hline% above not wanted +\fi +\ifcase\totalcolumncount% +\or% +\csname tab1\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&%% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname% +\or +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname% +\or%22 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname% +\or% 24 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname% +\or% 25 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname% +\or% +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname% +\or% 27 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname% +\or% 28 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname% +\or% 29 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname% +\or% 30 +\csname tab1\endcsname&\csname tab2\endcsname&% +\csname tab3\endcsname&\csname tab4\endcsname&% +\csname tab5\endcsname&\csname tab6\endcsname&% +\csname tab7\endcsname&\csname tab8\endcsname&% +\csname tab9\endcsname&\csname tab10\endcsname&% +\csname tab11\endcsname&\csname tab12\endcsname&% +\csname tab13\endcsname&\csname tab14\endcsname&% +\csname tab15\endcsname&\csname tab16\endcsname&% +\csname tab17\endcsname&\csname tab18\endcsname&% +\csname tab19\endcsname&\csname tab20\endcsname&% +\csname tab21\endcsname&\csname tab22\endcsname&% +\csname tab23\endcsname&\csname tab24\endcsname&% +\csname tab25\endcsname&\csname tab26\endcsname&% +\csname tab27\endcsname&\csname tab28\endcsname&% +\csname tab29\endcsname&\csname tab30\endcsname% +\else% +\typeout{^^J^^J +Sorry, more than 30 columns cannot be numbered with^^J +\string\colnumbers. Please number the columns manually.^^J +Thank you!^^J}\fi% +\\\hline% below, hline is wanted +\iffirsttime +\\\noalign{\vskip-30pt}%% +%\noalign{\vskip-8pt} +\vrule height 28pt width0pt %the \vrule is in the line below colnumbers; + % it causes all the vrules on that line to grow to 28pt. + % The -14pt will cause the lower line to overlap the upper line. + % Complication, needed to add this vrule to Z and z in order to + % have it also work for split tabular. +\fi\global\firsttimefalse +} + +\def\decimalcolnumbers{\crcr\saveplaincolnumbers\\% +\noalign{\global\savetabskip\tabskip +\tabskip=0pt +\global\let\extracolsep\relax +\global\let\ddoit\saveddoit +\global\let\zdoit\savezdoit +\vskip-32pt +}{\vrule height28pt depth0pt width0pt}\relax} + +\def\splitdecimalcolnumbers{\\[-15pt]% +\savesplitplaincolnumbers +\global\colnumbersonfalse +\\\noalign{\vskip-32pt %!!! +\global\savetabskip\tabskip +\tabskip=0pt +\global\let\extracolsep\relax +\global\let\ddoit\saveddoit +\global\let\zdoit\savezdoit +}\vrule height 28pt width0pt %!!! +\global\let\splitdecimalcolnumbers\secondsplitdecimalcolnumbers} + +\def\secondsplitdecimalcolnumbers{\omit\\ +\plaincolnumbers +\global\colnumbersonfalse +\\\noalign{\vskip-26pt %!!! was -28pt +\global\savetabskip\tabskip +\tabskip=0pt +\global\let\extracolsep\relax +\global\let\ddoit\saveddoit +\global\let\zdoit\savezdoit +}\\\relax} + +\let\savesplitdecimalcolnumbers\splitdecimalcolnumbers + +%%AAA +\newif\ifdeluxestar +\expandafter\def\csname +deluxetable*\endcsname{\deluxestartrue\bgroup\floattrue +\hsize=\textwidth +\deluxetable} + +\expandafter\def\csname enddeluxetable*\endcsname{\enddeluxetable +\egroup +\global\colnumbersonfalse +\global\deluxedecimalsfalse +\global\deluxestarfalse +} + +\def\deluxedecimalcolnumbers{\deluxedecimalstrue\colnumbersontrue} +\def\deluxetablecaption#1{\gdef\@tablecaption{#1}} + +\newif\ifstartlongtable +\def\startlongtable{\vskip1sp\global\startlongtabletrue} + +\newif\iffloat +\def\floattable{\global\deluxestartrue\global\floattrue} + +%% for equivalent but in \begin...\end form. +\def\floatrotatetable{\global\deluxestartrue\global\floattrue} +\let\endfloatrotatetable\relax + +\def\deluxetable{\global\deluxetrue +\catcode`\&=\active +\catcode`\$=\active +%% Mar 30, 2019, to make label outside of \caption work correctly +{\advance\c@table by 1 +\xdef\@currentlabel{\thetable}} +\let\tablecaption\deluxetablecaption +\deluxetablecaption{} +%% july 2016 +% \iffloat +% \let\go\ydeluxetable +% \else\let\go\longdeluxetable\fi\go%} +%% aug 2016 +\ifstartlongtable +%% this works for both deluxetable and deluxetable*: +%% nov 2017: +\def\arraystretch{1.1} +%% March 2019 +\if@two@col\global\returntotwocoltrue\vskip1pt +\ifdeluxestar\onecolumngrid\fi\fi +%% +\ifdeluxestar +\vskip12pt +\fi +\let\go\longdeluxetable +\else +\let\go\ydeluxetable +\fi\go +} + +\def\ydeluxetable#1{% +\@ifnextchar[{\xdeluxetable{#1}}{\zdeluxetable{#1}}} + +%% +% x and z are the same, except that xdeluxetable allows optional square bracket arg, like [h]. +\def\xdeluxetable#1[#2]{\global\breaktabtrue +%% not here +\let\colnumbers\deluxecolnumbers +\global\deluxedecimalsfalse +\let\decimals\deluxedecimals +\let\decimalcolnumbers\deluxedecimalcolnumbers +\let\tablehead\ztablehead +\gdef\tabfullpreamble{#1}%<<== needed +\def\endtabular{\endarray +\global\let\zdoit\relax +\global\let\tdoit\relax +\global\Dfalse} +\global\colnumsused=0 +\global\breaktabtrue +\global\colcount=0 +%% +%%%%%%%%%%%% + \lineskiplimit=\z@ % restore default setting +\ifdeluxestar +\gdef\two{#2}\gdef\checkh{h} +\ifx\two\checkh\onecolumngrid\fi +\begin{table*}[#2]\hsize=\textwidth\else + \begin{table}[#2]\fi +\noindent\setbox\splitbox=\vtop\bgroup% +\currtabletypesize + \vspace*{\abovedeluxetableskip} +%% +\def\startdata##1\enddata{% +\currtabletypesize +\setbox0=\hbox{ +\begin{tabular}{#1} +\pt@head +##1\end{tabular}} +\expandafter\ifx\csname @tablecaption\endcsname\empty\else +%% +\noindent\hbox +to\hsize{\hss\vtop{\hsize=\wd0 +\caption{\@tablecaption}}\hss}\vskip3pt\fi + +%% not here +\global\setbox3\hbox{% +\begin{tabular}{#1}% +\hline\hline\noalign{\vskip-9pt}% +\pt@head% +##1\crcr% added october 2017 +\omit\\\omit\\\hline\end{tabular}} + +%\noindent\hskip-1.25em %% kludge! but seems necessary +\hbox to\hsize{\hss\copy3\hss} +\global\setbox4\vtop\bgroup\ifdeluxestar\hsize=\textwidth\else\hsize=\wd0\fi\leftskip6pt\parindent-6pt +}} + +\def\zdeluxetable#1{\global\breaktabtrue +\let\colnumbers\deluxecolnumbers +\global\deluxedecimalsfalse +\let\decimals\deluxedecimals +\let\decimalcolnumbers\deluxedecimalcolnumbers +\let\tablehead\ztablehead +\gdef\tabfullpreamble{#1}%<<== needed +\def\endtabular{\endarray +\global\let\zdoit\relax +\global\let\tdoit\relax +\global\Dfalse} +\global\breaktabtrue +\global\colnumsused=0 +\global\colcount=0 +%% +%%%%%%%%%%%% + \lineskiplimit=\z@ % restore default setting +\ifdeluxestar +\begin{table*}\hsize=\textwidth\else + \begin{table}\fi +\noindent\setbox\splitbox=\vtop\bgroup% +\currtabletypesize + \vspace*{\abovedeluxetableskip} +%% +\def\startdata##1\enddata{% +\currtabletypesize +\setbox0=\hbox{\colnumbersonfalse +\begin{tabular}{#1} +\pt@head +##1\end{tabular}}% not here +\expandafter\ifx\csname @tablecaption\endcsname\empty\else +\noindent\hbox +to\hsize{\hss\vtop{\hsize=\wd0 +\caption{\@tablecaption}}\hss}\vskip3pt\fi +\global\setbox3\hbox{% +\begin{tabular}{#1}% +\hline\hline\noalign{\vskip-9pt}% +\pt@head% +##1\crcr%% added October 2017 +\omit\\\omit\\\hline\end{tabular}}%%<<== original +\vskip-\parskip +\noindent\hbox to\hsize{\hss\copy3\hss} +\global\setbox4\vtop\bgroup\hsize=\wd0\relax +\leftskip6pt\parindent-6pt +}} + + +%% go to \end{deluxetable}, after longdeluxetable + + + +%%@@@@ + +%% Variation on definition found in revtex4-1.cls +\def\LT@start@new{% + \let\LT@start\endgraf + \endgraf + \markthr@@{}% + \LT@pre + \@ifvoid\LT@firsthead{\LT@top}{\hbox{\ifdim\movetableright>0pt\relax\hskip\movetableright\fi\box\LT@firsthead} +\nobreak}% + \mark@envir{longtable}% +}% + +%%% +\newbox\longtablebox +\def\longdeluxetable#1{ +\global\rotateonfalse +\let\colnumbers\deluxecolnumbers +\global\deluxedecimalsfalse +\let\decimals\deluxedecimals +\let\decimalcolnumbers\deluxedecimalcolnumbers +\let\tablehead\ztablehead +\gdef\tabfullpreamble{#1}%<<== needed +\def\endtabular{\endarray +\global\let\zdoit\relax +\global\let\tdoit\relax +\global\Dfalse} +\global\colnumsused=0 +\global\colcount=0 +%% +%%%%%%%%%%%% + \lineskiplimit=\z@ % restore default setting +\let\enddeluxetable\endlongdeluxetable + \vspace*{\abovedeluxetableskip} +%% +\def\startdata##1\enddata{% +\global\setbox\longtablebox=\hbox{\currtabletypesize +\tabcolsep=3pt +\begin{tabular}{#1} +\pt@head +##1\end{tabular}} +%%% +\bgroup\centering +\def\table@hook{\currtabletypesize} + \LTcapwidth=\wd\longtablebox +%% march 2019, added [c] and these terms: +\ifcenterwidetable\global\centerwidetablefalse + \def\LT@LR@c{\LTleft=0pt minus1fill + \let\LTright\LTleft}% +\else +%% default, will center table that is narrower than text width + \def\LT@LR@c{\LTleft=0pt plus1fill + \LTright\LTleft}% +\fi +%% +% +\begin{longtable}[c]{#1}%% +\ifdim\movetableright>0pt + \noalign{\ifdim\movetableright>0pt + \global\LTleft=\movetableright + \fi} +% + \noalign{\hbox to \wd\longtablebox{ + \vtop{\hsize=.8\wd\longtablebox + \advance\baselineskip4pt + \raggedright + {\bf \fnum@table}.\vrule depth 6pt width0pt\ + \@tablecaption}\hss}\vskip-3pt }\\ + \hline + \hline\noalign{\vskip-9pt} + \pt@head% +\else +\caption{\hsize=\wd\longtablebox +\advance\baselineskip2pt +\@tablecaption}\\ % +\hline\hline\noalign{\vskip-9pt}% prob ok +\pt@head% +\fi +\endfirsthead + +\noalign{\centerline{\small +\hskip\movetableright{\bf \fnum@table}\ \it(continued)}\vskip6pt} +\hline\hline +\noalign{\vskip-12pt} +\pt@head% +\endhead + +\hline +\multicolumn{\totalcolumns}{c}{\vrule height 24pt width0pt\small\it +\fnum@table\ +continued \if@two@col\else on next page\fi}\\ +\endfoot + +\hline%\nobreak +\endlastfoot +##1 +\end{longtable} +\vglue-\LTpost +\vskip-6pt +\egroup +\global\setbox4=\vtop\bgroup +\ifdim\wd\longtablebox>\textwidth +\hsize=\textwidth +\else +\hsize=\wd\longtablebox\fi +\leftskip=6pt +\parindent=-6pt +\currtabletypesize +\global\startlongtablefalse +\global\movetableright=0pt +}% end data, endlongtable +} + +\def\endlongdeluxetable{ +%% +\vrule depth 6pt width 0pt +\vskip1sp +\egroup +\ifdim\dp4>6pt +\vglue-6pt +\vbox{\hbox to \columnwidth{\hfill +\vtop{\hsize\wd\longtablebox +\leftskip=6pt\parindent-6pt +\copy4 +}\hfill}%% +} +\fi +\vglue\ht4 +\global\colnumbersonfalse +\global\deluxedecimalsfalse +\global\rotateonfalse +%% +\relax\null%% \null is an empty hbox. +%% This keeps final page(s) of startlongtable/deluxetable +%% from begin thrown away when at end of article. +% \global\advance\c@table-1\relax +%% +% +%% march 2019 +\ifreturntotwocol\global\returntotwocolfalse +\twocolumngrid\fi +}%% + + +%% bbb +%% \end{deluxetable}: +\def\enddeluxetable{% +\egroup%end box 4 +\ifdim\dp4>6pt +\hbox to\hsize{\hss\copy4\hss} +\fi +\egroup% end splitbox +\centering +\ifrotateon\global\rotateonfalse +\rotatebox{90}{\hbox to\textheight{\hfill\vbox{ +\unvbox\splitbox +\vspace*{\belowdeluxetableskip}}\hfill}} +\else +\centering\unvbox\splitbox +\vspace*{\belowdeluxetableskip} +\vspace*{24pt} +\fi +\ifdeluxestar\end{table*}\global\deluxestarfalse +\if@two@col +\twocolumngrid\hsize=\columnwidth\fi%% check this!! +\else +\end{table}\fi +\gdef\colnumbers{\saveplaincolnumbers} +\global\breaktabfalse +\global\deluxefalse +\global\colnumbersonfalse +\global\deluxedecimalsfalse +\global\rotateonfalse +\startlongtablefalse +\global\movetableright=0pt +%\global\floatfalse +%\global\advance\c@table by -1\relax +}%% check this!! + +%%@@@ ??? + +\newbox\splitbox +\newif\ifdeluxe +\def\splitdeluxetable{ +%% Mar 30, 2019, to make label outside of \caption work correctly +{\advance\c@table by 1 +\xdef\@currentlabel{\thetable}} +\global\deluxetrue\catcode`\&=\active +\catcode`\$=\active +\xsplitdeluxetable} + +\def\xsplitdeluxetable#1{ +\global\breaktabtrue +\let\colnumbers\deluxecolnumbers +\let\decimals\deluxedecimals +\global\deluxedecimalsfalse +\let\decimalcolnumbers\deluxedecimalcolnumbers +\let\tablehead\xtablehead +\gdef\tabfullpreamble{#1} +\def\endtabular{\endarray +\global\let\zdoit\relax +\global\let\tdoit\relax +\global\Dfalse} +%%% modification of emulateapj \deluxetable %%%% +\setbox0=\hbox{\def\firstarg{#1}\expandafter\lookforD\firstarg} +\gdef\temppreamble{#1\relax} +\PartsOfTable=0 +\def\tempfullpreamble{#1BB} +\setbox0=\hbox{\expandafter\checkforB\tempfullpreamble} +%% Now PartsOfTable is either =2 or 3 +%% +\gdef\one{#1Z} +\global\colnumsused=0 +\global\breaktabtrue +\global\colcount=0 +%% +\ifnum\PartsOfTable=3 +\let\multicolumn\threebreakmulticolumn +\else +\let\multicolumn\breakmulticolumn +\fi +%%%%%%%%%%%% + \lineskiplimit=\z@ % restore default setting + \gdef\tblnote@list{} + \gdef\tblref@list{} +\ifsplitstar + \begin{table*}\else + \begin{table}\fi +\noindent\setbox\splitbox=\vtop\bgroup% +\currtabletypesize + \vspace*{\abovedeluxetableskip} +\let\startdata\xstartdata} +%% \end{splitdeluxetable}: + +\newdimen\movetabledown + +\def\endsplitdeluxetable{\vskip1sp\egroup%% end box with tablenotes +\hbox to \hsize{\hss\copy4\hss} +\egroup +\vskip1pt +\ifrotateon\global\rotateonfalse +\vskip\movetabledown\rotatebox{90}{\vbox{\noindent\unvbox\splitbox % +\vspace*{\belowdeluxetableskip} +}}\global\movetabledown=0pt\else +\noindent\unvbox\splitbox +\vspace*{\belowdeluxetableskip} +\fi +\ifsplitstar +\end{table*} +\else +\end{table}\fi +\gdef\colnumbers{\saveplaincolnumbers} +\tabletypesize{\small} +\global\breaktabfalse +\global\deluxefalse +\global\splitstarfalse +\global\colnumbersonfalse +\global\deluxedecimalsfalse +} + + +\newif\ifsplitstar +\expandafter\def\csname splitdeluxetable*\endcsname{\global\splitstartrue\splitdeluxetable} +\expandafter\def\csname endsplitdeluxetable*\endcsname{\endsplitdeluxetable\global\splitstarfalse +\global\colnumbersonfalse +\global\deluxedecimalsfalse +} + +\newdimen\maxtablewidth + +\gdef\NoTableCaption{\global\@table@not@headedtrue} + +%% For splitdeluxetable + +%%% ====================================================== %%% +\gdef\dbreaktabular{\catcode`\&=\active +\let&\CheckNumberAndSwitch\xdbreaktabular} + +\long\gdef\xdbreaktabular#1{%% #1=contents of table +{\global\maxtablewidth=0pt +\let&\CheckNumberAndSwitch +\let$\savedollar +\global\colnumsused=0 +%% +\global\dbreaktabtrue +\global\colcount=0 +%% +\ifnum\PartsOfTable=3 +\let\multicolumn\threebreakmulticolumn +\else +\let\multicolumn\breakmulticolumn +\fi +%% +\ifnum\PartsOfTable=3 +\expandafter\catchfirstpreamble\one +\expandafter\catchsecondofthreepreamble\one +\expandafter\catchthirdpreamble\one +\makefirstdummycolumns +\makeseconddummycolumns +\makethirddummycolumns +\else %% PartsOfTable=2 +\ifnum\PartsOfTable=2 +\expandafter\catchfirstpreamble\one +\expandafter\catchsecondpreamble\one +\makefirstdummycolumns +\makeseconddummycolumns +\fi\fi +%%% +\global\columncount=0 +\ifnum\PartsOfTable=3 +%% For table divided into three parts +\firstboxtrue\secondboxfalse\thirdboxfalse +\setbox\firsttablebox=\hbox{% +\begin{tabular}{AFE} +\ifx\csname pt@head\endcsname\relax\else +\pt@head\fi#1\crcr\end{tabular}} +\global\maxtablewidth=\wd\firsttablebox + +\noindent\hbox to \hsize{\hss\unhbox\firsttablebox\hss} +\vskip6pt +\hrule +\vskip6pt +\global\columncount=0 +\firstboxfalse\secondboxtrue\thirdboxfalse +\ifcolnumberson% +\setbox\secondtablebox=\hbox{% +\let\savecolnumbers\xcolnumbers% +\notfirsttrue% +\begin{tabular}{fZE} %fZE !!! +\ifx\csname pt@head\endcsname\relax\else% +\pt@head\fi#1\crcr\end{tabular}} +\else +%% +\setbox\secondtablebox=\hbox{% +\begin{tabular}{fZE}% +\ifx\csname pt@head\endcsname\relax\else% +\pt@head\fi\\ [-14pt]% +#1\crcr% +\end{tabular}} +\fi +\ifdim\wd\secondtablebox>\maxtablewidth +\global\maxtablewidth\wd\secondtablebox\fi + +\noindent\hbox to \hsize{\hss\unhbox\secondtablebox\hss} +%% +\vskip6pt +\hrule +\vskip6pt +\firstboxfalse\secondboxfalse\thirdboxtrue +\global\columncount=0 +\ifcolnumberson +\notfirsttrue +\setbox\thirdtablebox=\hbox{ +\let\savecolnumbers\xcolnumbers +\notfirsttrue +\begin{tabular}{fFz} +\ifx\csname pt@head\endcsname\relax\else +\pt@head\fi#1\crcr\end{tabular}} +\else +\setbox\thirdtablebox=\hbox{ +\begin{tabular}{fFz} +\ifx\csname pt@head\endcsname\relax\else +\pt@head\fi\\[-14pt] +#1 +\end{tabular}} +\fi +\ifdim\wd\thirdtablebox>\maxtablewidth +\global\maxtablewidth\wd\thirdtablebox\fi + +\noindent\hbox to \hsize{\hss\unhbox\thirdtablebox\hss} +\vskip6pt +\hrule +\else +%% Original for table divided into two parts +\global\columncount=0 +\secondboxfalse +\setbox\firsttablebox=\hbox{% +\begin{tabular}{AF} +\ifx\csname pt@head\endcsname\relax\else +\pt@head\fi% +#1\end{tabular}} +\global\maxtablewidth=\wd\firsttablebox +\hbox to \hsize{\hss\unhbox\firsttablebox\hss} +\vskip6pt +\hrule +\vskip6pt +\global\columncount=0 +\secondboxtrue +\ifcolnumberson +\setbox\secondtablebox=\hbox{% +\let\savecolnumbers\xcolnumbers +\notfirsttrue +\begin{tabular}{fZ}%% +\ifx\csname pt@head\endcsname\relax\else% +\pt@head\fi#1\crcr%%= tablecontents +\end{tabular}}% +\else +\setbox\secondtablebox=\hbox{% +\begin{tabular}{fZ}%% was 12 +\ifx\csname pt@head\endcsname\relax\else% +\pt@head\fi\\[-14pt]% +#1%%= tablecontents +\end{tabular}}\fi +\ifdim\wd\secondtablebox>\maxtablewidth +\global\maxtablewidth\wd\secondtablebox\fi + +\noindent\hbox to \hsize{\hss\unhbox\secondtablebox\hss} +\vskip6pt +\hrule +\secondboxtrue +%% +%% end of conditional testing for 2 or 3 part table: +\fi +%% +\global\dbreaktabfalse}} +%%% ====================================================== %%% + +\newif\ifnotfirst +%% @@@@ +%% xstartdata, modified from \startdata in emulateapj, for splitdeluxetable +\gdef\xstartdata#1\enddata{\def\tablecontents{% +\ifcolnumberson% +\\\savecolnumbers\\[2pt]\fi% this is for top level split +\ifdeluxedecimals\savedecimals\fi% +#1}% +\currtabletypesize% +\setbox2=\vtop{\dbreaktabular{\tablecontents}}% +% +\expandafter\ifx\csname @tablecaption\endcsname\empty\else +\noindent\hbox +to\hsize{\hss\vtop{\hsize=\maxtablewidth\caption{\@tablecaption}}\hss}\vskip3pt\fi +\dbreaktabular{\tablecontents\noalign{\global\let\zdoit\relax +\global\let\ddoit\relax}} +\parindent=0pt +\global\setbox4=\vtop\bgroup% egroup in enddeluxetable +\currtabletypesize +\ifsplitstar +\hsize=\textwidth\else\hsize=245.3pt\fi +\parindent=-6pt \leftskip=6pt +} + +\def\tablecomments#1{\vskip1pt{\small\vskip1sp\indent\vrule height 11pt depth 2pt +width 0pt\currtabletypesize{\sc Note}---{#1}\vskip1pt}} + +\def\tablenotetext#1#2{\vskip1pt{\currtabletypesize\vskip1pt\indent\vrule +height 11pt depth +2pt width0pt\relax$^{\hbox to 5pt{$#1$}}$#2\vskip1pt}} + +\def\tablerefs#1{{\small\vskip3pt\indent\vrule height 11pt depth 2pt +width 0pt\currtabletypesize{\bf References}---{#1}\vskip1sp}} + +\let\tablereferences\tablerefs + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 5. Simple entry decimal numbers + +%% extra unused args are to get rid of unnecessary commands revtex puts in +\gdef\lookfordecimal#1#2#3#4.#5 {\gdef\xone{{\let$\relax\savedollar#4\savedollar}} +\gdef\xtwo{#5}\ifx\xtwo\empty\else\gdef\xtwo{{\let$\relax\savedollar#5\savedollar}}\fi} + +%% D +\def\newdoit{\setbox0=\hbox\bgroup\zdoit} +\def\endnewdoit{\egroup\unhbox0} + +\long\gdef\zdoit#1 {\let$\relax +\def\bothcols{#1 }% +\setbox0=\hbox{\let$\relax\expandafter\lookfordecimal\bothcols{}{}{}{}.{} }% +\xdoit} + +\global\let\savezdoit\zdoit +\let\zdoit\relax + +\gdef\xdoit{\relax\hskip\tabcolsep\relax\xone&\tabskip=0pt% +\ifx\xtwo\empty\let\go\relax\else.\def\go{\xtwo}\fi\go} + +%% d +\def\xnewdoit{\setbox0=\hbox\bgroup\ddoit} +\def\xendnewdoit{\egroup} + +\long\gdef\ddoit#1#2#3{\xxdoit} +\let\saveddoit\ddoit +\let\ddoit\relax + +%% to delete all D material: + +\gdef\xxdoit{&} + +\newcolumntype{D}{>\newdoit r<{\endnewdoit} @{}l}%% +\newcolumntype{d}{>\xnewdoit h<{\xendnewdoit} @{}h} %% + +\newdimen\savetabskip +\gdef\decimals{\noalign{\global\savetabskip\tabskip +\tabskip=0pt +\global\let\extracolsep\relax +\global\let\ddoit\saveddoit +\global\let\zdoit\savezdoit +}} + +\let\savedecimals\decimals + +%% to allow \decimals to be used before \startdata: +\newif\ifdeluxedecimals +\def\deluxedecimals{\global\deluxedecimalstrue} + +%%%%%%%%% +%% This needed to be redefined so that \colhead in \tablehead would span both parts +%% of decimal numbers. + +%% in case there isn't a table head +\let\pt@head\relax + +%% for splitdeluxetable +\def\xtablehead{\catcode`\&=\active% +\catcode`\$=\active% +\xxtablehead} + +%% +\def\xxtablehead#1{% +\let&\CheckNumberAndSwitch% +\gdef\pt@head{% +\hline\hline% +\multicolumn1c{\tempcounter=0 +\expandafter\getDs\tabfullpreamble\relax +\global\colcount=0 +\global\colheadcount=0}% +\\ +\iftwelvepoint% + \ifpreprint% + \iflongrotateon\else\noalign{\vskip-6.5pt}\fi% + \else% + \ifpreprinttwo% + \iflongrotateon\else\noalign{\vskip-6.5pt}\fi% + \else% + \ifmanu% + \iflongrotateon\noalign{\vskip-8pt}\else\noalign{\vskip-17pt}\fi% + \else% + \ifmodern \iflongrotateon\else\noalign{\vskip-9pt}\fi% + \else% + \fi%% end ifmodern + \fi%% end ifmanu + \fi%% end ifpreprinttwo + \fi%% end ifpreprint +\else% +%% not twelvepoint + \iftwocolstyle% + \iflongrotateon\else\noalign{\vskip-5pt}\fi% + \else% + \ifonecolstyle% default + \iflongrotateon\noalign{\vskip2pt}\else\noalign{\vskip-4.5pt}\fi% + \fi% end ifonecol + \fi%endiftwocolstyle +\fi%end iftwelvepoint +#1\ifcolnumberson% +\ifnotfirst\\[-22pt]\fi +\else\\\hline\\[-8pt]\fi% space below hline for 2nd and 3rd part of split table +}% +% +} + +\def\ztablehead{\catcode`\&=\active% +\catcode`\$=\active% +\zztablehead} + +\def\zztablehead#1{\let&\CheckNumberAndSwitch% +\gdef\pt@head{% +%% this is needed: +\multicolumn1c{\expandafter\getDs\tabfullpreamble\relax +\global\tempcounter=0 +\global\colcount=0 +\global\colheadcount=0}\\ +\iftwelvepoint% + \ifpreprint% + \iflongrotateon\else\noalign{\vskip-6.5pt}\fi% + \else% + \ifpreprinttwo% + \iflongrotateon\else\noalign{\vskip-6.5pt}\fi% + \else% + \ifmanu% + \iflongrotateon\noalign{\vskip-8pt}\else\noalign{\vskip-17pt}\fi% + \else% + \ifmodern \iflongrotateon\else\noalign{\vskip-5pt}\fi% + \else% + \fi%% end ifmodern + \fi%% end ifmanu + \fi%% end ifpreprinttwo + \fi%% end ifpreprint +\else% +%% not twelvepoint + \iftwocolstyle% + \iflongrotateon\else\noalign{\vskip-5pt}\fi% + \else% + \ifonecolstyle% default + \iflongrotateon\noalign{\vskip2pt}\else\noalign{\vskip-4.5pt}\fi% + \fi% end ifonecol + \fi%endiftwocolstyle +\fi%end iftwelvepoint +#1\unskip% +\ifcolnumberson\\[6pt] +\savecolnumbers\vrule height 11pt depth 4pt width 0pt\relax% +\\\ifmanu\noalign{\vskip-15pt}\fi% +\ifdeluxedecimals\\[-14pt]% +\savedecimals\fi% +\else \vrule depth 6pt +width0pt\\\ifdeluxedecimals\savedecimals\fi\hline\fi% +}} + + +\newcount\tempcounter + +\gdef\getDs#1{\let&\CheckNumberAndSwitch +\def\lookforD{#1}% +\ifx\lookforD\xD% +\expandafter\gdef\csname col\the\tempcounter\endcsname{2}\else +\expandafter\gdef\csname col\the\tempcounter\endcsname{1}\fi +\global\advance\tempcounter by 1 +\futurelet\next\checkingpreamble} + +\gdef\checkingpreamble{\ifx\next\relax +\let\go\relax\else\let\go\getDs\fi\go} + +%%% Something like this could be used to automate the width of colheads in the tablehead, +%% making those that match the D in preamble are multicolumn2c instead of +%% multicolumn 1c. +\newcount\colheadcount +\newcommand\xcolhead[1]{\multicolumn{\expandafter\ifx\csname +col\the\colheadcount\endcsname\relax 1\else\expandafter% +\csname col\the\colheadcount\endcsname\fi}{c}{\vrule depth 4pt +width0pt\relax#1\relax\global\advance\colheadcount +by 1\relax}\ignorespaces}% +% + +%% +\extrarowheight=2pt +%% from revtex4-1, additions on top +%% fix for \usepackage{amsmath} and +%% any matrix environment +\def\matrixpreamble{*\c@MaxMatrixCols c} +%% this causes problem, must be fixed! +%\let\save@array@array@new\@array@array@new +\def\@array@array@new[#1]#2{% +\ifbreaktab +\else +%%% added so that we can use \colnumbers in any tabular environment +%%% and avoid error messages for breaktabular +\def\catchpreamble{#2\relax} +\gdef\tabfullpreamble{#2\relax} +{\colcount=0 +%% important fix, makes it possible to use amsmath and matrices. +\def\two{#2} +\ifx\matrixpreamble\two +\else +\expandafter\countcols\catchpreamble +\global\totalcolumns=\colcount\fi} +\fi +%%% end of additions + \@tempdima\ht\strutbox + \advance\@tempdima by\extrarowheight + \setbox\@arstrutbox\hbox{% + \vrule \@height\arraystretch\@tempdima + \@depth \arraystretch\dp\strutbox + \@width \z@ + }% + \begingroup + \@mkpream{#2}% + \xdef\@preamble{\@preamble}% + \endgroup + \prepdef\@preamble{% + \tabskip\tabmid@skip + \@arstrut + }% + \appdef\@preamble{% + \tabskip\tabright@skip + \cr + \array@row@pre + }% + \@arrayleft + \@nameuse{@array@align@#1}% + \m@th + \let\\\new@arraycr %<<== defined above, original plus reset counters + \let\tabularnewline\\% + \let\par\@empty + \let\@sharp##% + \set@typeset@protect + \lineskip\z@\baselineskip\z@ + \tabskip\tableft@skip + \everycr{}% + \expandafter\halign\expandafter\@halignto\expandafter\bgroup\@preamble +}% + +%% \rotate +\newif\ifrotateon +\def\rotate{\global\floattrue\iffloat\global\let\go\relax\global\rotateontrue\else +\global\rotateonfalse +\let\go\relax +%\def\go{\vskip48pt\huge +%{\tt \string\floattable\space must precede table using +%\string\rotate !!}} +\fi\go} + +\def\colnumbers{\plaincolnumbers} + +%% add 6pt of space between table and following text: +\let\saveendtable\endtable +\def\endtable{\vskip6pt\saveendtable} +\expandafter \let \csname endtable*\endcsname = \endtable +%% + + +%%% \movetabledown works +\newbox\rotatetablebox +\def\rotatetable{% +\clearpage +\global\startlongtabletrue\setbox\rotatetablebox=\vbox\bgroup +} + +\def\endrotatetable{\egroup +\vglue\movetabledown +\hbox to +\textwidth{\hss\rotatebox{90}{\hbox{\box\rotatetablebox}}\hss} +\global\movetabledown=0pt\relax +\global\startlongtablefalse +} + +%%% \movetabledown works +\expandafter\def\csname rotatetable*\endcsname{% +\clearpage +\global\startlongtabletrue\setbox\rotatetablebox=\vbox to +\textwidth\bgroup\vfill} + +\expandafter\def\csname endrotatetable*\endcsname{\vfill\egroup +\vbox to \textheight{\vfill +\vglue\movetabledown +\hbox to +\textwidth{\hss\rotatebox{90}{\box\rotatetablebox}\hss}\global\movetabledown=0pt\relax +\vfill} +\clearpage +\if@two@col +\twocolumngrid +\global\startlongtablefalse +} + +% +%%% \movetabledown works +\newif\iflongrotateon +\def\longrotatetable{% +\global\longrotateontrue + \if@two@col\onecolumngrid\clearpage + \fi +\clearpage + \clearpage + \begingroup +\expandafter\def\csname deluxetable*\endcsname{\deluxetable} +\expandafter\def\csname enddeluxetable*\endcsname{\enddeluxetable} +\global\floatfalse +\global\startlongtabletrue +\def\LS@rot{% + \setbox\@outputbox\vbox{\vskip\movetabledown\hbox{\rotatebox{90}{\box\@outputbox}}}} + +\let\LS@makecol=\@makecol +\let\LS@makefcolumn=\@makefcolumn + + \vsize=\textwidth + \hsize=\textheight + \linewidth=\hsize + \columnwidth=\hsize + \@colroom=\vsize + \textheight=\vsize + \@colht=\vsize + \def\@makecol{\LS@makecol\LS@rot}% + \def\@makefcolumn##1{\LS@makefcolumn{##1}\LS@rot}} + +\def\endlongrotatetable{% +\onecolumngrid %% ?? +\clearpage + \ifGin@pdftex + \pdfpageattr{/Rotate 90} + \fi + \clearpage + \endgroup + \if@two@col\twocolumngrid\fi +\clearpage +\global\longrotateonfalse +\global\movetabledown=0pt + \global\@colht=\textheight + \global\vsize=\textheight + \global\@colroom=\textheight} + +\newif\ifGin@pdftex +\Gin@pdftexfalse +\DeclareOption{pdftex}{% + \PassOptionsToPackage\CurrentOption{graphicx} + \Gin@pdftextrue +} + +\DeclareOption*{\PassOptionsToPackage\CurrentOption{graphicx}} +\ProcessOptions + +%% set &, $ catcode back to normal: + +\catcode`&=4 +\catcode`$=3 + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% end table tools +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Gridlines for positioning multiple illustrations in +%% one figure environment. + +\def\gridline#1{\vskip6pt\hbox to\hsize{#1}\vskip6pt} + +\def\boxedfig#1#2#3{\hfill\fbox{\vbox{\parskip=0pt\relax +\hsize=#2 +\includegraphics[width=#2]{#1}\vskip2pt\vtop{\hsize=#2 +\centerline{#3}}}}\hfill} + +\def\fig#1#2#3{\hfill\vbox{\parskip=0pt\hsize=#2 +\includegraphics[width=#2]{#1}\vskip2pt\vtop{\centering +\footnotesize +\hsize=#2 +#3\vskip1pt +}}\hfill} + +\def\leftfig#1#2#3{\vbox{\parskip=0pt\relax\hsize=#2 +\includegraphics[width=#2]{#1}\vskip2pt\vtop{\hsize=#2 +\centering +#3\vskip1sp\vskip1sp}}\hfill} + +\def\rightfig#1#2#3{\hfill\vbox{\parskip=0pt\relax\hsize=#2 +\includegraphics[width=#2]{#1}\vskip2pt\vtop{\hsize=#2 +\centering#3\vskip1sp}}} + +\def\rotatefig#1#2#3#4{\hfill\vbox{\centering\parskip=0pt\hsize=#3 +\includegraphics[width=#3,angle=#1]{#2}\vskip2pt\vtop{\centering +\footnotesize +\hsize=#3 +#4\vskip1pt +}}\hfill} + +%%%%%%%%%% End Grid line Macros %%%%%%%%%% + +%%%%%%%%%% Color Editing Macros %%%%%%%%%% +%% \turnoffedit or \turnoffedits +%% will prevent all \edit{text}, all +%% \collaborationcomment{text}, and all +%% \authorcomment{text} from producing any text. + +\newif\ifturnoffedit +\def\turnoffedit{\global\turnoffedittrue} +\def\turnoffedits{\global\turnoffedittrue} +\let\turnoffediting\turnoffedits + +\newif\ifturnoffone +\newif\ifturnofftwo +\newif\ifturnoffthree + +%% \turnoffeditone to only turn off only \edit1, \collaborationcomment1 and \authorcomment1 : +\def\turnoffeditone{\turnoffonetrue} + + +%% \turnoffedittwo to only turn off only \edit2, \collaborationcomment2 and \authorcomment2 : +\def\turnoffedittwo{\turnofftwotrue} + + +%% \turnoffeditthree to only turn off only \edit3, \collaborationcomment3 and \authorcomment3 : +\def\turnoffeditthree{\turnoffthreetrue} + + +%% Other choices can be made, but this should be +%% standardized, so didn't make an user interface +%% to change the colors easily. + +\expandafter\def\csname editcolor1\endcsname{black}% was magenta +\expandafter\def\csname editcolor2\endcsname{black}% was blue +\expandafter\def\csname editcolor3\endcsname{black}% was violet + +\newcount\colorcount +\def\edit#1#2{{\colorcount=#1\relax% +\ifturnoffedit\let\go\ignorespaces\else% +\let\go\relax\fi% +\ifturnoffedit +\color{black}#2% +\else +\color{\csname editcolor\the\colorcount\endcsname}% +\ifnum\colorcount=1{\ifturnoffone\color{black}#2\else\bf#2\fi}\else% +\ifnum\colorcount=2{\ifturnofftwo\color{black}#2\else\it#2\fi}\else% +\ifnum\colorcount=3{\ifturnoffthree\color{black}#2\else#2\fi}\fi\fi\fi\fi% +}\go} + +\def\collaborationcomment#1#2{{\colorcount=#1 +\ifturnoffedit\let\go\ignorespaces\else% +\let\go\relax% +\color{\csname editcolor\the\colorcount\endcsname} +\ifnum\colorcount=1{\ifturnoffone\else\bf (Collaboration~note: #2)\ \fi}\else +\ifnum\colorcount=2{\ifturnofftwo\else\it (Collaboration~note: #2)\ \fi}\else +\ifnum\colorcount=3{\ifturnoffthree\else (Collaboration~note: #2)\ \fi}\fi\fi\fi\fi% +\go}} + +\def\authorcomment#1#2{{\colorcount=#1 +\ifturnoffedit\let\go\ignorespaces\else% +\let\go\relax% +\color{\csname editcolor\the\colorcount\endcsname} +\ifnum\colorcount=1{\ifturnoffone\else\bf (Author~note: #2)\ \fi}\else +\ifnum\colorcount=2{\ifturnofftwo\else\it (Author~note: #2)\ \fi}\else +\ifnum\colorcount=3{\ifturnoffthree\else (Author~note: #2)\ \fi}\fi\fi\fi\fi% +\go}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Draft watermark + +\definecolor{ltgray}{gray}{.9}% .89 +\font\bighelv=phvr at 2in % +\def\setwatermarkfontsize#1{\font\bighelv=phvr at #1} + +\def\watermark#1{\def\thewatermark{\hbox to\textwidth{\vtop to +1.1\textheight{\vss +\hskip24pt\rotatebox{60}{\hbox{\bighelv \color{ltgray} +\uppercase{#1}}}\vss}}\hss}} +\let\thewatermark\empty + +%% Used in titlepage definition, as \pagestyle{titlepage} +\def\ps@titlepage{% + \let\@mkboth\@gobbletwo +\def\@oddhead{\ifx\thewatermark\empty\hfill\else +\hbox to \textwidth{\rlap{\thewatermark}\hfill}\fi} +\let\@oddfoot\@empty +\let\@evenhead\@empty\let\@evenfoot\@empty} + +% end of watermark definitions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand*\submitjournal[1] +{\def\@submitted{Submitted to #1}}% + +%% this one is used &&& +\def\titleblock@produce{% + \begingroup + \ltx@footnote@pop + \def\@mpfn{mpfootnote}% + \def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@makefnmark\frontmatter@makefnmark + \frontmatter@setup + \thispagestyle{titlepage}\label{FirstPage}% +\ifmodern\leftskip=0pt\rightskip\leftskip\fi + \frontmatter@title@produce + \groupauthors@sw{% +\frontmatter@author@produce@group + }{% + \frontmatter@author@produce@script + }% + \frontmatter@RRAPformat{% +\vskip12pt + \expandafter\produce@RRAP\expandafter{\@date}% + \expandafter\produce@RRAP\expandafter{\@received}% + \expandafter\produce@RRAP\expandafter{\@revised}% + \expandafter\produce@RRAP\expandafter{\@accepted}% + \expandafter\produce@RRAP\expandafter{\@published}% + }% +\expandafter\ifx\csname @submitted\endcsname\relax\else +\vskip6pt +\expandafter\produce@RRAP\expandafter{\centerline{\@submitted\hbox +to 20pt{\hfill}}\vskip12pt}% +\fi + \frontmatter@abstract@produce + \@ifx@empty\@pacs{}{% + \@pacs@produce\@pacs + }% + \@ifx@empty\@keywords{}{% + \@keywords@produce\@keywords + }% + \par + \frontmatter@finalspace +\endgroup% +}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Highlight Figure +\definecolor{ltblue}{cmyk}{.5,.1,.1,0} + +\long\def\highlightfigure#1{\centerline{ +\fboxrule=4pt +\fboxsep=12pt +\fcolorbox{ltblue}{white}{\hbox to +.93\textwidth{\hss$\vcenter{\advance\hsize -24pt #1}$\hss}} +}} + + +%%%%%%%%%%%%% +%% Line numbering + +\ifnumlines +\usepackage{lineno} + +\linenumbers*[1] +\if@two@col +\advance\linenumbersep -4pt +\else +\advance\linenumbersep 12pt +\fi\fi + + +\gdef\specialbibitem#1[#2]#3#4{ +{\tt\string\bibitem}[#2]{\tt\string{\string}} +#4} + +\let\savecite\cite +\let\savecitep\citep +\let\savecitet\citet +\def\specialcite#1{\hbox{\savecite{#1}}} +\def\specialcitep#1{\hbox{\savecitep{#1}}} +\def\specialcitet#1{\hbox{\savecitet{#1}}} +\let\saveref\ref +\def\specialref#1{\hbox{\saveref{#1}}} + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% Track Changes +%% Amy Hendrickson, Nov 2015 +%% Change Jan 2016, to allow list of changes +%% to give line and page numbers for more than one entry on the same line. +%% Change Feb 2016, to allow optional argument for time/date, and/or editor initials, etc. + + +\providecolor{trackchange}{cmyk}{0,0,0,1} +\providecolor{explain}{cmyk}{0,0,0,1} + +\newif\ifsilent + +\newcount\refchangenumber +\def\added{\@ifnextchar[{\xadded}{\yadded}} + +\long\def\xadded[#1]#2{% +\iftrack {\global\advance\refchangenumber by 1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines% +\ifabstract\else% +\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}{}{}{}}\doit\fi}% +{\color{trackchange}\bf(Added: [#1] #2)}%% +\ifabstract\label{\the\refchangenumber}% +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Added: [#1] +\textcolor{trackchange}\bf\relax{#2}\global\silenttrue}% +\else\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{\bf\relax Added: [#1] +\textcolor{trackchange}\bf\relax{\let\bibitem\specialbibitem #2}\global\silentfalse}\fi% +\else#2\fi} + + + +\long\def\yadded#1{% +\iftrack{\global\advance\refchangenumber by 1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines\ifabstract\else% +\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}{}{}{}}\doit% +\fi}% +{\color{trackchange}\bf(Added: #1)}%% +\ifabstract% +\label{\the\refchangenumber}% +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Added: +\textcolor{trackchange}\bf\relax{#1}, +\global\silenttrue}\else +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Added: +\textcolor{trackchange}{\bf\relax\let\bibitem\specialbibitem #1},% +\global\silentfalse}\fi% +\else#1\fi} + + + +\def\deleted{\@ifnextchar[{\xdeleted}{\ydeleted}} + +\long\def\xdeleted[#1]#2{\iftrack{\global\advance\refchangenumber by +1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines\ifabstract\else% +\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi% +\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}}\doit\fi% +}% +{\color{trackchange}\bf% +\ifbib\let\sout\relax\fi% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\ref\specialref\let\cite\specialcite (Deleted: [#1] \sout{#2}) +}% +\ifabstract\label{\the\refchangenumber}% +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Deleted: [#1] +{\color{trackchange}\bf% +\let\citet\specialcitet% +\let\citep\specialcitep% +\let\cite\specialcite\sout{#2}}\global\silenttrue}% +\else +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Deleted: [#1] +{\color{trackchange}% +\let\bibitem\specialbibitem% +\let\ref\specialref% +\let\cite\specialcite% +\let\citep\specialcitep% +\let\citet\specialcitet% +\sout{#2} +}\global\silentfalse}\fi% +\fi} + +\long\def\ydeleted#1{\iftrack{\global\advance\refchangenumber by 1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines\ifabstract\else% +\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi% +\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}{}{}{}}\doit% +\fi}% +%% +{\color{trackchange}\bf% +\ifbib\let\sout\relax\fi% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\ref\specialref\let\cite\specialcite(Deleted: \sout{#1} +)}% +\ifabstract\label{\the\refchangenumber}% +\expandafter\gdef\csname changenum\the\refchangenumber\endcsname{Deleted: +{\color{trackchange}\bf\let\ref\specialref% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\sout{#1}}\global\silenttrue}% +\else +\expandafter\gdef\csname changenum\the\refchangenumber\endcsname{Deleted: +{\color{trackchange}\bf% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\bibitem\specialbibitem% +\let\ref\specialref% +\let\cite\specialcite\sout{#1}}\global\silentfalse}\fi% +\fi} + + +\def\replaced{\@ifnextchar[{\xreplaced}{\yreplaced}} + +\long\def\xreplaced[#1]#2#3{% +\iftrack\global\advance\refchangenumber by 1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines\ifabstract\else\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}}\doit\fi% +{\ifbib\let\sout\relax\fi +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf(Replaced: [#1] \sout{#2}}% +{\color{black}replaced with:} {\let\ref\specialref% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf\relax #3)}% +\ifabstract\label{\the\refchangenumber}% +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Replaced: [#1] +{\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf\relax\sout{#2}} {\color{black} replaced with:} +{\color{trackchange}\bf\relax#3}, \global\silenttrue}% +\else +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Replaced: [#1] +{\ifbib\let\sout\relax\fi\let\bibitem\specialbibitem +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf\relax\sout{#2} +} {\color{black} replaced with:} +{\let\bibitem\specialbibitem\color{trackchange}\bf\relax#3}, \global\silentfalse}\fi% +\else#3\fi} + +\long\def\yreplaced#1#2{% +\iftrack\global\advance\refchangenumber by 1\relax% +\vtop to 0pt{\vss +\hypertarget{link\the\refchangenumber}{} +\vskip14pt}% +\ifnumlines\ifabstract\else\xdef\doit{\noexpand\linelabel{\the\refchangenumber}}\doit\fi\else% +\xdef\doit{\noexpand\label{\the\refchangenumber}}\doit\fi% +{\ifbib\let\sout\relax\fi\let\ref\specialref% +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf\relax(Replaced: %\sout +{#1} +}% +{\color{black}replaced with:} +{\color{trackchange}\bf\relax #2)}% +\ifabstract\label{\the\refchangenumber}% +\expandafter\gdef\csname changenum\the\refchangenumber\endcsname{Replaced: +{\let\cite\specialcite% +\let\citep\specialcitep% +\let\citet\specialcitet% +\color{trackchange}\bf\relax\sout{#1}} {\color{black} replaced with:} +{\color{trackchange}\bf\relax#2},\global\silenttrue}% +\else +\expandafter\gdef\csname +changenum\the\refchangenumber\endcsname{Replaced: +{\ifbib\let\sout\relax\fi\let\bibitem\specialbibitem +\let\citep\specialcitep% +\let\citet\specialcitet% +\let\cite\specialcite\color{trackchange}\bf\relax\sout{#1} +} {\color{black} replaced with:} +{\let\bibitem\specialbibitem\color{trackchange}\bf\relax#2}, \global\silentfalse}\fi% +\else#2\fi} + +\def\explain{\@ifnextchar[{\xexplain}{\yexplain}} + +\def\xexplain[#1]#2{\iftrack\ {\bfseries\itshape\color{explain} [Explanation of change: +#2 (#1)]\ }\fi} + +\def\yexplain#1{\iftrack\ {\bfseries\itshape\color{explain} [Explanation of change: +#1]\ }\fi} + +\newcount\listchangenum + +\def\listofchanges{ +\clearpage +\iftrack +\ifnum\refchangenumber>0 +\ifnumlines\nolinenumbers\fi +\vskip36pt +\hrule +\noindent{\vrule height 14pt width0pt depth 6pt\large\bf List of Changes} +\hrule +\vskip18pt +\nobreak +{\parskip=4pt \parindent=0pt +\loop +\global\silentfalse +\vskip-1pt\relax +\global\advance\listchangenum by 1\relax +\expandafter\ifx\csname changenum\the\listchangenum\endcsname\relax +\else +\csname changenum\the\listchangenum\endcsname\ +on page +%% can't get hyperlink to work correctly for page numbers, works but error messages. +\hyperlink{link\the\listchangenum}{\bf\pageref{\the\listchangenum}}% +\ifnumlines% +\ifsilent\global\silentfalse \else% +\setbox0=\hbox{\lineref{\the\listchangenum}}% +\ifdim\wd0<20pt% +, line\ +\hyperlink{link\the\listchangenum}{\lineref{\the\listchangenum}}% +\fi +\fi\fi.\relax +\repeat} +\fi\fi +\thispagestyle{empty} +} + +\PassOptionsToPackage{normalem}{ulem} +\usepackage{ulem} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% From earlier version of AASTeX, for usefulness and +%% backward compatibility, with some requested additions + +\let\jnl@style=\rmfamily +\def\ref@jnl#1{{\jnl@style#1}}% + +%%% +\renewcommand\memsai{\ref@jnl{Mem.~Soc.~Astron.~Italiana}}% + % Mem. Societa Astronomica Italiana +%% longer version: +\newcommand\memsocai{Mem. Societ\`a Astronomica Italiana} +\newcommand\aspconf{Ast. Soc. of the Pac. Conference Series} + +\let\astap=\aap +\let\apjlett=\apjl +\let\apjsupp=\apjs +\let\applopt=\ao + +%%% More useful commands from Earlier version of Aastex: +\let\la=\lesssim % For Springer A&A compliance... +\let\ga=\gtrsim + +\let\farcm\farcm@mss +\let\farcs\farcs@mss + +\def\farcm@apj{% + \mbox{.\kern -0.7ex\raisebox{.9ex}{\scriptsize$\prime$}}% +}% + +\def\farcs@apj{% + \mbox{% + \kern 0.13ex.% + \kern -0.95ex\raisebox{.9ex}{\scriptsize$\prime\prime$}% + \kern -0.1ex% + }% +}% + +\def\chem@bnd#1{% + {% + \kern.1em\relax + \setbox\z@\hbox{M}% + \dimen@ii.8em\relax + \p@=.1em\relax + \dimen@.5\ht\z@\dimen@i-\dimen@ + \advance\dimen@1.5\p@\advance\dimen@i-1.0\p@ + #1% + \kern.1em\relax + }% + }% +\def\@sbnd{% + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@dbnd{% + \advance\dimen@-0.5\p@\advance\dimen@i0.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@tbnd{% + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% + +\renewcommand\LaTeX{% + \leavevmode + L% + \raise.42ex\hbox{% + \count@=\the\fam + $\fam\count@\scriptstyle\kern-.3em A$% + }% + \kern-.15em\TeX +}% + +%% added Feb 2, 2016, redefining definition of \caption made with hyperref +%% package. Making \caption[] be the default, to prevent sending caption +%% text to listoftables or listoffigures, which we are not going to use +%% anyway. This change enables track changes commands to work in captions. +\def\xtable{table} +\def\caption{\numlinesfalse +\ifx\@captype\@undefined +\@latex@error {\noexpand \caption outside float}\@ehd +\expandafter \@gobble \else +\H@refstepcounter \@captype \let \Hy@tempa \@caption \@ifundefined +{float@caption}{} +{\expandafter \ifx \csname @float@c@\@captype\endcsname +\float@caption\let\Hy@tempa\Hy@float@caption\fi} +\expandafter\@firstofone\fi +{\@dblarg {\Hy@tempa \@captype}}[]} + +\def\@caption#1[#2]#3{{\small\rm\expandafter \ifx \csname if@capstart\expandafter \endcsname +\csname iftrue\endcsname \global \let \@currentHref \hc@currentHref \else \hyper@makecurrent {\@captype }\fi +\@ifundefined {NR@gettitle}{\def \@currentlabelname{\thesection\relax #2}} +{\NR@gettitle {#2}}\par +%\addcontentsline {\csname ext@#1\endcsname }{#1}{\protect \numberline {\csname the#1\endcsname }{\ignorespaces #2}} +\begingroup \@parboxrestore \if@minipage \@setminipage \fi \normalsize +\expandafter\ifx \csname if@capstart\expandafter \endcsname +\csname iftrue\endcsname \global \@capstartfalse +\@makecaption {\bf\csname fnum@#1\endcsname }{\ignorespaces #3} +\else \@makecaption {\bf\csname fnum@#1\endcsname }{\ignorespaces \ifHy@nesting +\expandafter \hyper@@anchor \expandafter {\@currentHref }{#3}\else +\Hy@raisedlink {\expandafter \hyper@@anchor \expandafter +{\@currentHref }{\relax }}{#3}\fi }\fi \par +\endgroup}} + +%% changed, March 23, 2019, took out \\ at end of definition: +\newcommand\tablebreak{\\[-11pt]\noalign{\break}} + +%% As suggested by Greg Schwarz, August Meunch, Feb 11 + +\def\dataset{\def\doi##1{https://doi.org/##1} +\@ifnextchar[{\ydataset}{\xdataset}} +\def\xdataset#1{\ydataset[]{#1}\let\doi\savedoi} +\def\ydataset[#1]#2{\def\one{#1}\ifx\one\empty +\href{#2}{[DATASET]}\else +\href{#2}{#1}\fi\let\doi\savedoi} + +%% this seems in the middle of nowhere... +\advance\columnsep6pt + +%%%%%%%%%% +%% macros to give hyperref link to authors when orcid numbers +%% are supplied with \author[0000-2345-3333-0023]{author name} + \def\lookforbracket{\ifx\next[\let\go\xauthor + \else\let\go\yauthor\fi\go} + +\newcount\entriesinthiscollab +\newcount\allentries +\newif\ifseesmessage +\def\author{\global\advance\entriesinthiscollab by 1 +\global\advance\allentries by 1\relax\futurelet\next\lookforbracket} + +\def\new@author@def#1#2{% + \move@AU\move@AF\move@AUAF + \let\@AF@join\@author@join + \def\@author{{\href{http://orcid.org/#1}{#2% +\openin1 Orcid-ID.png \ifeof1 +%% message for authors?? +%\typeout{^^J^^J ! Missing File: Orcid-ID.png; needed for Orcid Author icon ! +%^^J} +\else% +\hskip2pt\includegraphics[width=9pt]{Orcid-ID.png}\fi}}{}}% +}% + +\def\orciderrormessage{ +\typeout{^^J^^J [\firstarg]\space Invalid ORCID Identifier!^^J^^J The ID +should consist of four sets of four digits,^^J separated with -, ie, +0000-0012-3245-1234 or ^^J +0000-0012-3245-123X +^^J^^J +Please fix, or don't use square bracket argument with +\string\author[]\string{\string} +^^J^^J} +} + +%% Tests to see if author gave reasonable Orcid number; +%% if not, stops processing and gives error message. +\newif\ifbadOrcid +\def\lookatOrcid #1-#2-#3-#4-{ +\def\one{#1}\def\two{#2}\def\three{#3}\def\four{#4} +\ifx\one\empty +\global\badOrcidtrue +\else +\ifx\two\empty +\global\badOrcidtrue +\else +\ifx\three\empty +\global\badOrcidtrue +\else +\ifx\four\empty +\global\badOrcidtrue +\fi\fi\fi\fi +} + +\def\lookforDigits #1#2#3#4{ +\def\xone{#1}\def\xtwo{#2}\def\xthree{#3}\def\xfour{#4} +%% +\ifx\xone\empty +\global\badOrcidtrue +\else + \ifcat \xone 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xtwo\empty +\global\badOrcidtrue +\else + \ifcat \xtwo 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xthree\empty +\global\badOrcidtrue +\else + \ifcat \xthree 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xfour\empty +\global\badOrcidtrue +\else + \ifcat \xfour 1\else + \global\badOrcidtrue\fi +\fi +} + +\def\FinallookforDigits #1#2#3#4{ +\def\xone{#1}\def\xtwo{#2}\def\xthree{#3}\def\xfour{#4} +%% +\ifx\xone\empty +\global\badOrcidtrue +\else + \ifcat \xone 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xtwo\empty +\global\badOrcidtrue +\else + \ifcat \xtwo 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xthree\empty +\global\badOrcidtrue +\else + \ifcat \xthree 1\else + \global\badOrcidtrue\fi +\fi +%%% +\ifx\xfour\empty +\global\badOrcidtrue +\else + \ifcat \xfour 1\else + \if\xfour X + \else + \global\badOrcidtrue\fi + \fi +\fi +} + + + + + +%% Last digit might be X +\def\xauthor[#1]#2{\def\testone{#1-}\def\firstarg{#1} +\setbox0=\hbox{\expandafter\lookatOrcid\testone {}-{}-{}-{}- +\expandafter\lookforDigits\one {}{}{}{} +\expandafter\lookforDigits\two {}{}{}{} +\expandafter\lookforDigits\three {}{}{}{} +\expandafter\FinallookforDigits\four {}{}{}{}} +%% +\ifbadOrcid\let\go\orciderrormessage +\else\let\go\relax\fi\go +\ifbadOrcid\let\go\stop\else\let\go\relax\fi\go +\new@author@def{#1}{#2}} + +\def\yauthor{\@author@def{}} + +\def\altaffilmark#1{\typeout{^^J^^J\string\altaffilmark\space is no longer +needed. It will not do anything.^^J Please use +\string\altaffiliation\string{\string} instead.^^J^^J}\stop} + +\def\altaffiltext#1{\typeout{^^J^^J\string\altaffiltext\space is no longer +needed. It will not do anything.^^J Please use +\string\altaffiliation\string{\string} instead.^^J^^J}\stop} + +%% We do not need \and in list of authors. It is taken care of +%% automatically. Below is the definition from revtex4-1: +% +%\renewcommand\frontmatter@and{\class@err{\protect\and\space is not +% supported}} + +\newcount\AuthorCollaborationLimit +\let\AuthorCallLimit\AuthorCollaborationLimit +%% no limit for default +\AuthorCollaborationLimit=10000 +\newcount\largestAffilNum + +\def\lookfornumbers#1#2#3#4#5#6#7#8#9{\def\one{#1} +\def\two{#2} +\def\three{#3} +\def\four{#4} +\def\five{#5} +\def\six{#6} +\def\seven{#7} +\def\eight{#8} +\def\nine{#9} +\ifnum\one>\largestAffilNum +\global\largestAffilNum=\one\fi +%%% +\ifx\two\empty\else +\ifnum\two>\largestAffilNum +\global\largestAffilNum=\two\fi\fi +%%% +\ifx\three\empty\else +\ifnum\three>\largestAffilNum +\global\largestAffilNum=\three\fi\fi +%%% +\ifx\four\empty\else +\ifnum\four>\largestAffilNum +\global\largestAffilNum=\four\fi\fi +%%% +\ifx\five\empty\else +\ifnum\five>\largestAffilNum +\global\largestAffilNum=\five\fi\fi +%%% +\ifx\six\empty\else +\ifnum\six>\largestAffilNum +\global\largestAffilNum=\six\fi\fi +%%% +\ifx\seven\empty\else +\ifnum\seven>\largestAffilNum +\global\largestAffilNum=\seven\fi\fi +%%% +\ifx\eight\empty\else +\ifnum\eight>\largestAffilNum +\global\largestAffilNum=\eight\fi\fi +%%% +\ifx\nine\empty\else +\ifnum\nine>\largestAffilNum +\global\largestAffilNum=\nine\fi\fi +} + +%\gdef\newcomma@space{\hskip-3pt\textsuperscript{,}}% +\def\doEtAl{\rm et al.\gdef\doEtAl{\relax}} +%% ===================== +\newif\iffirsttime +\firsttimetrue +\newcount\totalentries +\newcount\docollabnum +\newcount\tempauthornumber +\newcount\countauthors +\newif\ifdothis +\def\doAnd{} +\newcount\testnum + +\def\olddoauthor#1#2#3{% +\iflongauthor\vskip6pt\fi +\global\advance\countauthors by 1 +\ifnum\countauthors>\AuthorCollaborationLimit +\doEtAl +\else +\ifnum\AuthorCollaborationLimit=1 +\let\@listand\relax +\fi + \ignorespaces\leavevmode\hbox{#1\unskip\@listcomma}% nice, keeps name from breaking across lines +\fi + \begingroup +\ifnum\countauthors>\AuthorCollaborationLimit\else + #3% all affil numbers +\ifx\@affilID@temp\empty +\else% +\setbox0=\hbox{\expandafter\lookfornumbers\@affilID@temp{}{}{}{}{}{}{}{}{}}% +\fi\fi +%% #2= \altaffiliation{} or \email{} or +%% possibly anything other than author, affiliation, or collaboration + \@if@empty{#2}{\endgroup{}{}} +{\ifnum\countauthors>\AuthorCollaborationLimit\endgroup{}{}%% <<< bug fix, added \endgroup{}{} +\else +\endgroup{\comma@space}{}\frontmatter@footnote{#2}\fi}% +\ifnum\countauthors>\AuthorCollaborationLimit\else \space +\@listand\fi +}% + +\def\doauthor#1#2#3{% +\iflongauthor\vskip6pt\fi +%%% +\ifanonymous + \iffirsttime + \global\firsttimefalse + Anonymous author(s) + \fi +\else %% ends at end of this def +%%% +\ifnum\docollabnum< 1 +\global\AuthorCollaborationLimit\expandafter\csname +currCollabLimit0\endcsname +%% this won't change until after collaboration name at end +\fi %% end ifnum\docollabnum +%% +%%%%%%%%%%%%%%%% +\global\advance\totalentries by 1 +\global\advance\countauthors by 1 +%%% +\ifallauthors\global\AuthorCollaborationLimit=9999 \fi +%%% +% for testing +% [author number=\the\countauthors/ auth collab limit +% =\the\AuthorCollaborationLimit] +% +\gdef\xone{#1} +\ifnum\countauthors < \AuthorCollaborationLimit +\gdef\docomma{,}\else\gdef\docomma{}\fi +%%% +\ifnum\countauthors = \AuthorCollaborationLimit +\ifnum\AuthorCollaborationLimit=1\else +\gdef\doAnd{And }\fi +\ifnum\tempauthornumber= 1 +\gdef\doAnd{ } \fi\fi +%% +{\tempauthorminusone=\AuthorCollaborationLimit +\advance\tempauthorminusone by -1 +\ifnum\countauthors=\tempauthorminusone +\gdef\doAnd{And } +\gdef\docomma{}\fi}% +%%% +\global\dothisfalse +%% if num countauthors is less than or equal to \AuthorCollaborationLimit, print name +\ifnum\countauthors< \AuthorCollaborationLimit +%%% +\ifx\xone\empty\else +\global\dothistrue +%\expandafter\gdef\csname +%dothisaffil-\the\countauthors\the\docollab\endcsname{dothisone} + \ignorespaces\leavevmode\hbox{#1\unskip\docomma}% nice, keeps name from breaking across lines +\fi +\fi +%% +\ifnum\countauthors= \AuthorCollaborationLimit +%%% +\ifx\xone\empty\else +\global\dothistrue + \ignorespaces\leavevmode\hbox{\doAnd #1\unskip\docomma}% nice, keeps name from breaking across lines +\fi +\fi +%% ++++ +%% +\ifsuppressAffiliations\else +\ifx\xone\empty\else + \begingroup +\ifnum\countauthors>\AuthorCollaborationLimit\else + #3% all affil numbers +\ifx\@affilID@temp\empty %% number following author +\else% +\setbox0=\hbox{\expandafter\lookfornumbers\@affilID@temp{}{}{}{}{}{}{}{}{}}% +\fi\fi +%% #2= \altaffiliation{} or \email{} or +%% possibly anything other than author, affiliation, or collaboration + \@if@empty{#2}{\endgroup{}{}} +{\ifnum\countauthors>\AuthorCollaborationLimit\endgroup{}{}%% <<< bug fix, added \endgroup{}{} +\else +\endgroup{\comma@space}{}\frontmatter@footnote{#2}\fi}% +\fi%% end test of empty +\fi%% end test of suppressAffiliations +%%%%%%%%%%%%%%%%%%%%%%%% +%%% Collaboration name is always used if available: +\expandafter\ifx\csname currCollabName\the\totalentries\endcsname\relax\else +%%% +%%% +%%% +%% changed locally: +{\advance\docollabnum 1 +\advance\countauthors-1 +%%% +%%% We need to test to see if more than one author in collaboration +%%% and if the number of authors is greater than the \AuthorCollaborationLimit. +%%% If both of these are true, than use `et al.' , otherwise do not: +\expandafter\ifx\csname +CollabTotalAuthors\the\docollabnum\endcsname\relax +\else +\expandafter\ifnum\csname +CollabTotalAuthors\the\docollabnum\endcsname +< 2 %%%%% Don't use et al if there is only one author +\else +\expandafter\ifnum\csname CollabTotalAuthors\the\docollabnum\endcsname +>\AuthorCollaborationLimit +\ifnum\AuthorCollaborationLimit=0\else +\vskip3pt +{\rm et al.} \vskip-3pt +\fi\fi\fi\fi +}%% end local change to docollabnum +%%%% +\expandafter\ifx\csname +currCollabName\the\totalentries\endcsname\empty +\vskip-3pt +\else +\vskip6pt +\expandafter\csname currCollabName\the\totalentries\endcsname\vskip8pt +\affiliation{testing} +\fi +%%%%%%%% +\global\countauthors=0 +%%% +%%% +\global\advance\docollabnum by 1 +%% Set up counters for next time through this loop: +{\advance\docollabnum by1 + \expandafter\ifx\csname + specificCollabLimit\the\docollabnum\endcsname\relax + \else + \global\AuthorCollaborationLimit=\csname + specificCollabLimit\the\docollabnum\endcsname + \fi +\expandafter\ifx\csname +CollabTotalAuthors\the\docollabnum\endcsname\relax +\else +\global\tempauthornumber=\csname +CollabTotalAuthors\the\docollabnum\endcsname +\fi +} +\fi %% ends test to see if it is time to use collaboration name +\fi %% ends ifanonymous +}% + + +%%%% ++++==== +\newcount\tempauthorminusone +%% +++ +\def\doAllauthors#1#2#3{% +\global\suppressAffiliationsfalse +\iflongauthor\vskip6pt\fi +%%% +\ifanonymous + \iffirsttime + \global\firsttimefalse + Anonymous author(s) + \fi +\else %% ends at end of this def +%%% +\ifnum\docollabnum< 1 +%% these won't change until after collaboration name at end +\global\AuthorCollaborationLimit\expandafter\csname currCollabLimit0\endcsname +\global\tempauthornumber=\csname CollabTotalAuthors1\endcsname +\fi%% end ifnum\docollabnum +%% +%%%%%%%%%%%%%%%% +\global\advance\totalentries by 1 +\global\advance\countauthors by 1 +%%% +\ifallauthors\global\AuthorCollaborationLimit=9999 \fi +%%% +% for testing +%[author number=\the\countauthors/ temp author +%=\the\tempauthornumber] +\def\one{#1} +{\tempauthorminusone=\tempauthornumber +\advance\tempauthorminusone by -1 +\ifnum\countauthors < \tempauthornumber +\gdef\xdocomma{,}% +\else\gdef\xdocomma{}\fi% +%%% +\ifnum\countauthors = \tempauthornumber +\gdef\xdoAnd{And}\gdef\xdocomma{}% +\else\gdef\xdoAnd{}\fi% +\ifnum\tempauthornumber= 1 +\gdef\xdoAnd{}\gdef\xdocomma{}\fi% +\ifnum\countauthors=\tempauthorminusone +\gdef\xdocomma{}\fi% +} +%%% +%% if num countauthors is less than or equal to \AuthorCollaborationLimit, print name +\ifnum\countauthors< \AuthorCollaborationLimit +%%% +\ifx\one\empty\else + \ignorespaces\leavevmode\hbox{\unskip\xdoAnd\ #1\unskip\xdocomma}% nice, keeps name from breaking across lines +\fi\fi% +%% +\ifnum\countauthors= \AuthorCollaborationLimit +%%% +\ifx\one\empty\else +\ignorespaces\leavevmode\hbox{\unskip\xdoAnd\ #1\unskip\xdocomma}% nice, keeps name from breaking across lines +\fi% +\fi% +%% +\ifx\one\empty\else + \begingroup +\ifnum\countauthors>\AuthorCollaborationLimit\else + #3% all affil numbers +\ifx\@affilID@temp\empty +\else% +\setbox0=\hbox{\expandafter\lookfornumbers\@affilID@temp{}{}{}{}{}{}{}{}{}}% +\fi\fi +%% #2= \altaffiliation{} or \email{} or +%% possibly anything other than author, affiliation, or collaboration + \@if@empty{#2}{\endgroup{}{}} +{\ifnum\countauthors>\AuthorCollaborationLimit\endgroup{}{}%% <<< bug fix, added \endgroup{}{} +\else +\endgroup{\comma@space}{}\frontmatter@footnote{#2}\fi}% +\fi%% end test of empty +%%%%%%%%%%%%%%%%%%%%%%%% +%%% Collaboration name is always used if available: +\expandafter\ifx\csname currCollabName\the\totalentries\endcsname\relax\else +%%% +%% No et al in allauthors, because all authors are listed! +%% +\expandafter\ifx\csname +currCollabName\the\totalentries\endcsname\empty +\else +\vskip6pt +\expandafter\csname currCollabName\the\totalentries\endcsname\vskip6pt +\fi +\global\countauthors=0 +%%% +%%% +\global\advance\docollabnum by 1 +%% Set up counters for next time through this loop: +{\advance\docollabnum by1 + \expandafter\ifx\csname + specificCollabLimit\the\docollabnum\endcsname\relax + \else + \global\AuthorCollaborationLimit=\csname + specificCollabLimit\the\docollabnum\endcsname + \fi +% +\expandafter\ifx\csname +CollabTotalAuthors\the\docollabnum\endcsname\relax +\else +\global\tempauthornumber=\csname +CollabTotalAuthors\the\docollabnum\endcsname +\fi} +\fi %% ends test to see if it is time to use collaboration name +\fi %% ends ifanonymous +}% + +%%% +%% set \affil to match \affiliation found in revtex, since authors are accustomed to using \affil{} +\let\affil\affiliation + +\newif\iffirstaffil +\firstaffiltrue + +\newcount\affilnum +%% +++! +\def\@affil@script#1#2#3#4{% +\ifsuppressAffiliations\else +\iffirstaffil +% Oct 2017 +\vskip2pt +\global\firstaffilfalse\fi + \@ifnum{#1=\z@}{}{% + \par + \begingroup + \frontmatter@affiliationfont + \@ifnum{\c@affil<\affil@cutoff}{}{% +\def\one{#1} +%% +%% +\ifnum\one<\largestAffilNum +%% this makes the numbers + \def\@thefnmark{#1}\@makefnmark\fi +\ifnum\one=\largestAffilNum + \def\@thefnmark{#1}\@makefnmark\fi + }% +\ifnum\one<\largestAffilNum + \ignorespaces#3% +\fi +\ifnum\one=\largestAffilNum + \ignorespaces#3% +\fi + \@if@empty{#4}{}{\frontmatter@footnote{#4}}% + \par + \endgroup + }% +\fi}% + + + +\newif\ifnobreakafterkeywords +\def\NoNewPageAfterKeywords{\global\nobreakafterkeywordstrue} +\NoNewPageAfterKeywords +\def\NewPageAfterKeywords{\global\nobreakafterkeywordsfalse} + +\def\frontmatter@maketitle{% +\@author@finish +\if@firstsection% not appendix, in other words + \title@column\titleblock@produce +\onecolumngrid +\else +% +\global\firstaffiltrue + \title@column\secondtitleblock@produce +\fi + \suppressfloats[t]% +%% Prevent these from being turned off so that +%% we can use \maketitle again for \AllAuthors. +%% +% \let\and\relax + \let\affiliation\@gobble + \let\author\@gobble +% \let\@AAC@list\@empty +% \let\@AFF@list\@empty +% \let\@AFG@list\@empty +% \let\@AF@join\@AF@join@error +% \let\email\@gobble +% \let\@address\@empty +% \let\maketitle\relax +% \let\thanks\@gobble +\if@firstsection +\let\abstract\@undefined\let\endabstract\@undefined +\titlepage@sw{% +\ifnobreakafterkeywords +\else +\vfil +\ifrnaas\else \clearpage\fi +\fi + }{}% +\fi +}% + + +\let\maketitle\frontmatter@maketitle + +\def\secondtitleblock@produce{% + \begingroup + \ltx@footnote@pop + \def\@mpfn{footnote}% + \def\thempfn{\thefootnote}% + \c@footnote\z@ + \let\@makefnmark\frontmatter@makefnmark +% \frontmatter@setup + \thispagestyle{titlepage}%\label{FirstPage}% +% \frontmatter@title@produce + \groupauthors@sw{% + \frontmatter@author@produce@group + }{% + \frontmatter@author@produce@script + }% + \endgroup +}% + +%% no club or widow lines +\widowpenalty=10000 +\clubpenalty\widowpenalty +\setlength{\footnotesep}{8pt} + +\ifmodern +\setlength{\voffset}{0in} +\setlength{\hoffset}{0in} +\setlength{\textwidth}{6in} +\setlength{\textheight}{9.2in} +\setlength{\headheight}{0ex} +\setlength{\headsep}{36pt} % this is 2 lines in ``manuscript'' +\setlength{\footnotesep}{0in} +\setlength{\topmargin}{-\headsep} +\setlength{\oddsidemargin}{0.25in} +\setlength{\evensidemargin}{0.25in} +\setlength{\parindent}{0.54\baselineskip} +\sloppy\sloppypar +\fi + + +\def\figurename{Figure} +\def\tablename{Table} +\def\fnum@figure{{\bf\figurename~\thefigure}} +\def\fnum@table{{\bf\tablename~\ifappletter\thesection\fi\thetable}} + + +\def\tempfootmark#1{} + +\newcount\c@affilcount + + +\renewcommand*\altaffiliation[2][]{% +\@AF@join{#1#2\ifmodern\baselineskip=14pt\fi +\if@two@col\hsize=.5\textwidth +\advance\hsize by -18pt +\fi}% +}% + +\def\correspondingauthor#1{{\ifanonymous +\else +\renewcommand\thefootnote{\hskip-12pt} +\footnote{Corresponding author: #1\ifmodern\vrule depth 5pt +width 0pt\relax\fi}\fi}} + +\let\saveemail\email +\def\email#1{\ifanonymous +\else{\let\ltx@footmark\tempfootmark +\saveemail{}} +{\renewcommand\thefootnote{\hskip-12.1pt} +\footnote{\href{mailto: #1}{#1}\ifmodern\vrule depth 7pt width +0pt\relax\else\ifmanu\vskip-4pt\else\vrule depth 7pt width +0pt\fi\fi}}\fi} + +\def\nocollaboration#1{% +\collaboration{#1}{\vbox to +0pt{\vss\centerline{---}\vskip2pt}} +} + +%% May 19 +%% \AuthorsAndCollaboration changed to \FullCollaborationID +%% June 6 \FullCollaborationID changed to \xcollaboration{}{} +%% june 7 \collaboration changed to \xcollaboration; fullcollaborationid changed to \collaboration + +%% here just in case we need it in the future... +\def\xcollaboration#1#2{ +\global\advance\allentries by 1 +\expandafter\def\csname +currCollabLimit\the\allentries\endcsname{#1} +\@author@def{\@booleantrue +\collaboration@sw}{#2} +} + +\let\savelistand\@listand +\newcount\numauthors +\newcount\collabnum +\newbox\collabnamebox +\newif\iffirstcollab +\global\firstcollabtrue + +\newif\ifcollaborationon +\def\collaboration#1#2{\global\collaborationontrue +\global\advance\collabnum by 1 +\iffirstcollab\global\firstcollabfalse +\expandafter\xdef\csname currCollabLimit0\endcsname{#1} +\fi +%% make this def so that we can use it when we want in doauthor: +\expandafter\gdef\csname specificCollabLimit\the\collabnum\endcsname{#1} +%% This allows us access the number of authors per collaboration: +\expandafter\xdef\csname +CollabTotalAuthors\the\collabnum\endcsname{\the\entriesinthiscollab} +\global\entriesinthiscollab=0 +%% +\global\advance\allentries by 1 +%% +%% we should have only one of these with this number; this used to say when +%% use specificCollabLimit: +\expandafter\gdef\csname currCollabLimit\the\allentries\endcsname{#1} +%% we should have only one of these with this number +\expandafter\gdef\csname +currCollabName\the\allentries\endcsname{%\ifnum#1>0 +%\sc And the\vskip4pt\fi +#2} +%% +\let\doEtAl\relax +\@author@def{\@booleanfalse +\collaboration@sw}{} +} + + +\def\and{ +\centerline{\vbox {\vrule height 12pt width0pt and\vskip2pt}} +} + +%\def\andthe{% +%\collaboration{\vbox {\vrule height 12pt width0pt and +%the\vskip2pt}}\vskip4pt +%} + +%% gets rid of () around collaboration +\def\@collaboration@present#1#2#3#4{% +\par + \begingroup +\vskip3pt +\iflongauthor\vskip-4pt\ifmodern\vskip-6pt\fi\fi + \frontmatter@collaboration@above + \@affilID@def{}% + \@tempcnta\z@ + \@author@present{}{\ignorespaces#3\unskip}{#4}% +%% October 2017 + \par +\ifmodern%\vskip-4pt +\else +\iflongauthor\else\vskip-6pt\fi\fi + \endgroup +\iflongauthor +\else\vskip8pt\fi + \set@listcomma@list#1% +\vskip1pt %% was \vskip9pt +}% + + +%%% These lines were commented out until a fix could be applied that +%%% addresses the underlying issues. The problem is that on Linux systems +%%% you can not write a "hidden" .bib file. There is no issue with this +%%% on Mac OS X nor Windows. +%%% get rid of \jobname Notes being sent to .aux file: +%\let\bibdata@app\relax +%\def\pre@bibdata{} + +%% This is the underlying issue: +%% Redefining \@bibdataout@init will keep useless file, \jobnameNotes, from being written. +\let\@bibdataout@init\relax + +%% redefining and simplifying RevTeX4-1 definition, so that bibliography is not looking for +%% \jobnameNotes: + +\def\bibliography#1{\bibliography@latex{#1}}% + +%%% +\let\savecentercr\@centercr +\def\frontmatter@author@produce@script{% + \begingroup + \let\@author@present\@author@present@script + \frontmatterverbose@sw{\typeout{\string\frontmatter@author@produce@script:}\say\@AAC@list\say\@AFF@list\say\@AFG@list}{}% + \let\AU@temp\@empty + \@tempcnta\z@ + \let\AF@opr \@gobble + \def\AU@opr{\@author@count\@tempcnta}% + \def\CO@opr{\@collaboration@count\AU@temp\@tempcnta}% + \@AAC@list + \expandafter\CO@opr\@author@cleared + \begingroup + \frontmatter@authorformat + \let\AF@opr \@affilID@def + \let\AU@opr \@author@present + \def\CO@opr{\@collaboration@present\AU@temp}% + \set@listcomma@list\AU@temp + \@AAC@list +%% \, added to definition taken from revtex4-1 to prevent error message. +\, \unskip\unskip + \par + \endgroup +%% + \begingroup + \frontmatter@above@affiliation@script + \let\AFF@opr \@affil@script +{\parskip=2pt +\def\@centercr{\vrule depth 3pt width0pt\vskip1sp} + \@AFF@list} +\let\@centercr\savecentercr + \frontmatter@footnote@produce + \par + \endgroup + \endgroup +}% + +\let\auto@bib\relax + +\newif\iffirstaffil +\firstaffiltrue +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% These commands were in aastex earlier; I redefined. +\def\tighten{\global\tightentrue\normalsize} +\let\tightenlines=\tighten +\def\singlespace{\par\global\doublespacefalse\global\tightenfalse\normalsize} +\def\doublespace{\par\global\doublespacetrue\global\tightenfalse\normalsize} + +\bibliographystyle{aasjournal} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%% October 2017 + +\renewenvironment{widetext}{% +\if@two@col + \par\ignorespaces + \setbox\widetext@top\vbox{% + \hb@xt@\hsize{% + \leaders\hrule\hfil + \vrule\@height6\p@ + }% + }% + \setbox\widetext@bot\hb@xt@\hsize{% + \vrule\@depth6\p@ + \leaders\hrule\hfil + }% + \onecolumngrid + \vskip10\p@ + \dimen@\ht\widetext@top\advance\dimen@\dp\widetext@top + \cleaders\box\widetext@top\vskip\dimen@ + \vskip6\p@ + \prep@math@patch +\fi}{% +\if@two@col + \par + \vskip6\p@ + \setbox\widetext@bot\vbox{% + \hb@xt@\hsize{\hfil\box\widetext@bot}% + }% + \dimen@\ht\widetext@bot\advance\dimen@\dp\widetext@bot + \cleaders\box\widetext@bot\vskip\dimen@ + \vskip8.5\p@ + \twocolumngrid\global\@ignoretrue + \@endpetrue +\fi}% +\newbox\widetext@top +\newbox\widetext@bot + +\urlstyle{rm} + +\def\doi#1{\href{https://doi.org/#1}{https://doi.org/#1}} +\let\savedoi\doi + +\def\mdash{---} + +\newif\ifcenterwidetable +%% these two definitions are the same, but it might +%% be convenient to have both +\def\centerwidetable{\global\centerwidetabletrue} + + +%% this doesn't seem to be documented, assume we don't need it: +%\def\centernarrowtable{\global\centerwidetablefalse} + +%% default, center within width of text on both sides + \def\LT@LR@c{\LTleft=0pt plus1fill + \LTright\LTleft}% + +\def\widetable{\def\LT@LR@c{\LTleft=0pt minus1fill + \let\LTright\LTleft}} + +\newif\ifreturntotwocol + + +%%%%%%%%% +%% to help with graceful linebreaks in two column text: + \tolerance 9999% +%% sloppy defines emergencystretch to be 3 em, this is a bit +%% more conservative: + \emergencystretch 1em + \hfuzz .5\p@ + +%%%%%%%%% +%% Nominal Conversion Constants + +%% \boldmath inside the \hbox ?? +\def\nomSolarEffTemp{\leavevmode\hbox{\boldmath$\mathcal{T}^{\rm N}_{\mathrm{eff}\odot}$}} +\def\nomTerrEqRadius{\leavevmode\hbox{\boldmath$\mathcal{R}^{\rm N}_{E\mathrm e}$}} +\def\nomTerrPolarRadius{\leavevmode\hbox{\boldmath$\mathcal{R}^{\rm N}_{E\mathrm p}$}} +\def\nomJovianEqRadius{\leavevmode\hbox{\boldmath$\mathcal{R}^{\rm +N}_{J\mathrm e}$}} + \def\nomJovianPolarRadius{\leavevmode\hbox{\boldmath$\mathcal{R}^{\rm + N}_{J\mathrm p}$}} + \def\nomTerrMass{\leavevmode\hbox{\boldmath$(\mathcal{GM})^{\rm N}_{\mathrm E}$}} + \def\nomJovianMass{\leavevmode\hbox{\boldmath$(\mathcal{GM})^{\rm N}_{\mathrm J}$}} + \def\Qnom{\leavevmode\hbox{\boldmath$\mathcal{Q}^{\rm N}_{\odot}$}} +\let\Qn\Qnom + +%% Generic commands that can be given an argument: +\def\nom#1{\leavevmode\hbox{\boldmath$\mathcal{#1}^{\rm N}_{\odot}$}} +\def\Eenom#1{\leavevmode\hbox{\boldmath$\mathcal{#1}^{\rm N}_{Ee}$}} +\def\Epnom#1{\leavevmode\hbox{\boldmath$\mathcal{#1}^{\rm N}_{Ep}$}} +\def\Jenom#1{\leavevmode\hbox{\boldmath$\mathcal{#1}^{\rm N}_{Je}$}} +\def\Jpnom#1{\leavevmode\hbox{\boldmath$\mathcal{#1}^{\rm N}_{Jp}$}} + +%%%%%%%%%%%%%%%% +%% Ability to have tables, equations, figures in appendix start from 1, and use appendix section letter. + +\newif\ifappletter +\def\apptablenumbers{\global\applettertrue +\setcounter{table}{0} +\setcounter{figure}{0} +\setcounter{equation}{0} +\def\thetable{\thesection\the\c@table}% +\def\fnum@table{{\bf\tablename~\thetable}}% +\def\thefigure{\thesection\the\c@figure}% +\def\fnum@figure{{\bf\figurename~\thefigure}}% +}% + +%%% easier to remember than \apptablenumbers +\let\restartappendixnumbering\apptablenumbers + +\def\resetapptablenumbers{\global\c@table=0 +\global\c@figure=0 +\global\c@equation=0 +\def\thetable{\thesection\the\c@table} +\def\fnum@table{{\bf\tablename~\thetable}}% +\def\thefigure{\thesection\the\c@figure} +\def\fnum@figure{{\bf\figurename~\thefigure}}% +} + +%% aastex63 +\newif\ifallauthors +\def\allauthors{\global\allauthorstrue +\let\doauthor\doAllauthors +\ifanonymous +\vskip6pt\vskip1sp\centerline{\large\bf All Authors and +Affiliations\vrule depth 18pt width0pt}\nobreak +\centerline{Anonymous author(s)} +\else +\ifnumlines\nolinenumbers\fi +\onecolumngrid +\clearpage +{\vskip6pt\vskip1sp\centerline{\large\bf All Authors and +Affiliations\vrule depth 18pt width0pt}\nobreak +\global\docollabnum=0 +\global\totalentries=0 +\global\countauthors=0 +\maketitle +}\fi} + +%% AASTeX62 +\def\oldallauthors{%% this conditional keeps \allauthors from turning on +%% unless \AuthorCollaborationLimit is used: +\ifnumlines\nolinenumbers\fi +\onecolumngrid +\clearpage +\AuthorCollaborationLimit=10000 +%\largestAffilNum=10000 <<== not needed +{\vskip6pt\vskip1sp\centerline{\large\bf All Authors and +Affiliations\vrule depth 18pt width0pt}\nobreak +\maketitle +}} +\let\AllAuthors\allauthors + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% New interactive command: + +\def\xlc{timeseries} +\def\xjs{js} +\def\xanimation{animation} + +\newif\ifcorrectentries +\def\interactive#1#2{\global\correctentriesfalse\def\checkone{#1} +\ifx\checkone\xlc\correctentriestrue\fi +\ifx\checkone\xjs\correctentriestrue\fi +\ifx\checkone\xanimation \correctentriestrue\fi +\ifcorrectentries +\else\hrule height1pt\vskip12pt\bf ERROR: Your choices for the first argument for +{\tt\string\interactive} are timeseries, js, or animation.\\[6pt] Please choose one +of these terms.\vskip12pt \fi +%%% +\def\checktwo{#2} +\ifx\checktwo\empty \vskip12pt \bf ERROR: The command {\tt\string\interactive} needs +two arguments, with the second argument for the graphics file or files +needed.\vskip12pt\hrule height1pt \else\correctentriestrue\fi +\setbox0=\vbox\bgroup} + +\def\endinteractive{\egroup +\ifcorrectentries\highlightfigure{\vskip-6pt\vbox{\unvbox0} +\vskip-12pt}\fi} + +%%%% For cases in which footnotes are called in full width environment +%% but are used in two cols. This keeps them from overwriting the +%% second column: + +\let\savefootnote\footnote +\def\onecolfootnote#1{\savefootnote{\hsize=.5\textwidth\advance\hsize +by-18pt\relax#1}} + +\def\onecolumnfootnotes{\let\footnote\onecolfootnote} + +\newdimen\movetableright + +\newif\ifsuppressAffiliations +\def\suppressAffiliations{\global\suppressAffiliationstrue} + + +\endinput + + +%% Change Log +============================ +June 8, 2019 +Changed \author and \collaboration macros. +Collaboration now takes two arguments: +#1= number of authors to be listed before the +name of the collaboration; #2 = name of the collaboration + +\nocollaboration{} has one argument, +#1= the number of authors above it that we want to print on the title page. + +June 6, 2019 + +\acknowledgments does not use \begin{}...\end{} form, +now just \acknowledgments command. Acknowledgments text +ends with \par, so if author wants more than one paragraph +in acknowledgment he/she should surround text with curly +bracket: + +\acknowledgments +text... + +or + +\acknowledgments +{text... + +more text...} + +------ + + +============================ +June 3, 2019 +\let\footnote\onecolfootnote on page where references start, but +before footnotes are entered, +will allow footnotes to break in the right place (one column's width). + +============================ +May 15, 2019 +\centerwidetable is now \movetableover at Greg's suggestion. + +============================ +Nov 27, 2017 + +1) Change to \begin{widetext}...\end{widetext} to +return the horizontal lines before and after the +environment. + +2) \NoNewPageAfterKeywords is now default; +authors wanting a new page after keywords can +use the \NewPageAfterKeywords command. + +3) Change in definition names, returning to earlier version: +\turnoffediting will turn off colors for all levels +of editing mark up made with \edit1{}, \edit2{}, or \edit3{}. +You can turn off any level of editing with +\turnoffeditone, \turnoffedittwo, and \turnoffeditthree. + +4) It is now possible to use \doi{} as an argument of \dataset. +\dataset[]{\doi{10.5281/zenodo.831784}} and +\dataset[\doi{10.5281/zenodo.831784}]{\doi{10.5281/zenodo.831784}} +will work. + +============================ +October 15, 2017 + +1) \movetabledown now works with longrotatetable as it does with +rotatetable. +\movetabledown= before either +\begin{rotatetable} or +\begin{longrotatetable} + +Added \clearpage before \begin{rotatetable} and \begin{rotatetable*} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +2) + +\NoNewPageAfterKeywords, used after \documentclass{AASTeX62}, +will keep a new page from starting after keywords. +Extra vertical space before first section in Modern option. + +Solution suggested by Alex Drlica-Wagner. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +3)\edit1{}, \edit2{} and \edit3{} will add color +to the edited text. + +To get rid of the color, but not the text, authors should +use \turnoffeditonecolor (for \edit1{}) + \turnoffedittwocolor (for \edit2{}) + \turnoffeditthreecolor (for \edit3{}) +These commands have the same results as +\turnoffeditone, \turnoffedittwo, and \turnoffeditthree +which are not disabled, but the new commands make the +action to be produced more descriptive. + +Similarly, instead of \turnoffedit or \turnoffedits +we now have \turnoffeditcolors. The original two +commands still work, but the new command is more +descriptive of the results. + +Authors should be instructed to put these commands before +\begin{document} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +4) +\begin{widetext}...\end{widetext} + +\begin{widetext} +will go from twocolumngrid to onecolumngrid, centered. + +\end{widetext} will turn off centering and go back +to twocolumngrid. + +Only needed in twocolumn styles; nothing will happen +in single column styles. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +5) Sean Lake's problem with \mag was solved by Barbara Beeton online, + +``the latest edit identifies the problem unambiguously: \mag is a tex +primitive, and shouldn't be redefined. why this didn't appear in the +logs you posted is beyond me, but if you rename your command to (say) +\Mag it should stop having a problem. � barbara beeton Feb 22'' + +\mag is a tex primitive, and it is expecting to be followed by a +number. + +This had nothing to do with AASTeX61.cls + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +6) +\def\arraystretch{.9} as requested will make the space between +lines in tables shrink to 90% of the original space. + +I think what is really wanted is \def\arraystretch{1.1} which will +still give us 110% of the original space, a little extra vertical space, but not +as much as we had before. + +Meanwhile, an author can change the definition of \arraystretch{} +for a single table or all the tables in his paper, if he wants more +or less space. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +7) Abstract is now the same width as in emulateapj +in all styles, with the exception of the modern option +which is unchanged. Abstracts in all styles will break over pages +in this version. + +Thanks to suggestion by Patricio Cubillos. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +8) Center and tighten affiliations, changed and +tested for all styles, including longauthor option. + +samples.zip show examples titlepage of each style with and +without longauthor option. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +9) preprintnumbers activated. +No need to use a documentclass option. + +Just enter \reportnum{}, before \begin{document} +and repeat as many times as needed. The entries will stack +in the top right hand corner of the titlepage, for all styles. + +ie +\reportnum{YOUR-INST-REP-789} +\reportnum{MY-INST-REP-123} + +%% author can continue with as many entries as desired. +% \reportnum{A number of other numbers} +% \reportnum{More Numbers} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +10) Title is no longer uppercase by default. It is +now title case, which means all important words are +capitalized by author. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +11) \AuthorCollaborationLimit now +set to default of 10,000. If smaller number of +authors wanted, \AuthorCollaborationLimit can +be set to the number wanted; \allauthors typed +at end of article will make every author and +affiliation print. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +12) \startlongtable\deluxetable now works in appendix, even +when it is the last entry in the paper. Added \null +to \endlongdeluxetable which has the effect of making +last page print. + +This works in my test, but it +may be useful to see the example from author, github #54 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +13) Deluxetable no longer crashes if author has neglected +to put in \\ before \enddata. I added the non-redundant \\ +command, \crcr, and sample now works. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +14) \tablehead in deluxetable had too much space underneath +double horizontal lines. Made custom negative skip based +on each style, tested, and supplied tabsamples.zip showing +tableheads in each style. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +15) \urlstyle{rm} is set so that url and href produce +the same fonts. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +16) Fix to \dataset so that square brackets +are not printed in the case of argument +in square brackets. + +Now +\dataset[]{http://www.texnology.com} +produces +[DATASET] linked to www.texnology.com + +\dataset[TeXnology]{http://www.texnology.com} +produces +TeXnology linked to www.texnology.com + +%% This will also work, +% same results as \dataset[]{http://www.texnology.com} +% but using the more common LaTeX syntax: + +\dataset{http://www.texnology.com} +also produces +[DATASET] linked to www.texnology.com + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +17) New version of DOI: + +\doi{10.5281/zenodo.831784} +now produces hyperlinked + +https://doi.org/10.5281/zenodo.831784 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +18) Added to definition of \software, +working with sample from August Muench, reduced +the space between words, and got rid of +extra space after punctuation with the +\frenchspacing command. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +19) August Muench entered a bug report +complaining that \clearpage doesn't always +work, but he didn't have a sample, so I am +not able to debug this one. It may be that +the problem isn't with the code, but with +the way the commands were entered, but +without a sample I have no way of knowing. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +20) +Tested \startlongtable in all styles +and didn't find a problem with centering. +I did add a skip at the beginning of +\startlongtable in case someone didn't +leave a blank line before using the +command. + +============================ +September 21, 2016 +Finishing Version 6.1 update + +===================== +August 27, 2016 +Many changes + +===================== +August 17 +Many changes: + +%% note: +%% this keeps tables from being set to \small, code used in Revtex4-1 +\let\table@hook\relax + +===================== +Feb 29, changes to table macros to center caption even if table is wider than +width of text; give error message if user asks to rotate table but +forgets to use \floattable before table; make rotating table be full +text width even if called for in double columns. + +March 1, reworking figure and table numbering for appendices. +Deleted recent definition of \appendix, returned to earlier version +with additions. + +================ + + + + + + diff --git a/paper/apjfonts.sty b/paper/apjfonts.sty new file mode 100644 index 00000000..6403e812 --- /dev/null +++ b/paper/apjfonts.sty @@ -0,0 +1,360 @@ +% Wed Dec 4 20:36:44 1996 +% Alexey Vikhlinin +% Maxim Markevitch +% This is a style file to use Times fonts for text and math, using CM versions +% for greek letters and math symbols. Works for both LaTeX2e and older LaTeX +% 2.09. +% +% Report any bugs or problems to alexey@head-cfa.harvard.edu +% +% Nov 4 2003: \AA was broken because of redefinition of \r +% + + +\@ifundefined{documentclass}{ +%% This part is used with Latex 2.09. No boldface. The part for Latex2e is +%% below. + +% latex style with times roman text and times italic math (MM) + +% plain text: + +\def\@mrm{unmr}% times - roman, version Nimbus +\def\@mit{ptmri}% times - italic +\def\@msl{ptmro}% times - oblique +\def\@mbf{ptmb}% times - bold +\def\@mcsc{ptmrc}% times - roman - small caps +\def\@mtt{pcrr}% courier +\def\@mss{phvr}% helvetica + + +% math text font: + +\font\twfvmi = ptmri at 25pt +\font\twtymi = ptmri at 20pt +\font\svtnmi = ptmri at 17pt +\font\frtnmi = ptmri at 14pt +\font\twlmi = ptmri at 12pt +\font\elvmi = ptmri at 11pt +\font\tenmi = ptmri at 10pt +\font\ninmi = ptmri at 9pt +\font\egtmi = ptmri at 8pt +\font\sevmi = ptmri at 7pt +\font\sixmi = ptmri at 6pt +\font\fivmi = ptmri at 5pt + +% math symbol font (Symbol from ctan/fonts/psfonts/adobe/times) +% reencoded by texmital.enc): + +%\font\twfvcmmi = zpsycmrv at 25pt +%\font\twtycmmi = zpsycmrv at 20pt +%\font\svtncmmi = zpsycmrv at 17pt +%\font\frtncmmi = zpsycmrv at 14pt +%\font\twlcmmi = zpsycmrv at 12pt +%\font\elvcmmi = zpsycmrv at 11pt +%\font\tencmmi = zpsycmrv at 10pt +%\font\nincmmi = zpsycmrv at 9pt +%\font\egtcmmi = zpsycmrv at 8pt +%\font\sevcmmi = zpsycmrv at 7pt +%\font\sixcmmi = zpsycmrv at 6pt +%\font\fivcmmi = zpsycmrv at 5pt +% cmmi greek is better: +\font\twfvcmmi = cmmi10 at 25pt +\font\twtycmmi = cmmi10 at 20pt +\font\svtncmmi = cmmi10 at 17pt +\font\frtncmmi = cmmi10 at 14pt +\font\twlcmmi = cmmi10 at 12pt +\font\elvcmmi = cmmi10 at 11pt +\font\tencmmi = cmmi10 at 10pt +\font\nincmmi = cmmi9 +\font\egtcmmi = cmmi8 +\font\sevcmmi = cmmi7 +\font\sixcmmi = cmmi6 +\font\fivcmmi = cmmi5 + + +%%% these are pieces from dvips/contrib/timesmat.sty: + +% Put cmmi back into TeX, as a new maths alphabet, so that we +% can get back the Greek & other characters missing in Times. + +% (MM: I found experimantally that textfont9 is the first unused font) +\def\@tempa{9} + +% Tell TeX where cmmi is. +% Assumes \@ptsize is defined by article, report, book +\ifcase \@ptsize + \textfont\@tempa\tencmmi + \scriptfont\@tempa\sevcmmi + \scriptscriptfont\@tempa\fivcmmi +\or + \textfont\@tempa\elvcmmi + \scriptfont\@tempa\sevcmmi + \scriptscriptfont\@tempa\fivcmmi +\or + \textfont\@tempa\twlcmmi + \scriptfont\@tempa\egtcmmi + \scriptscriptfont\@tempa\sixcmmi +\fi + +% cmmi and Times-italic have different positions for some punctuation marks +%% (MM: this may be replaced by re-encoding times-italic by texmital.enc) +% \mathcode`\ ="8000 % \space +% \mathcode`\!="5021 +% \mathcode`\'="8000 % ^\prime +% \mathcode`\(="4028 +% \mathcode`\)="5029 +% \mathcode`\*="22.4 % \ast +% \mathcode`\+="202B +\mathcode`\,="602C +% \mathcode`\-="2200 +\mathcode`\.="002E +\mathcode`\/="002F +% \mathcode`\:="303A +% \mathcode`\;="603B +\mathcode`\<="303C +% \mathcode`\=="303D +\mathcode`\>="303E +% \mathcode`\?="503F +% \mathcode`\[="405B +% \mathcode`\\="026E % \backslash +% \mathcode`\]="505D +% \mathcode`\_="8000 % \_ +% \mathcode`\{="4266 +% \mathcode`\|="026A +% \mathcode`\}="5267 +\mathchardef\ldotp="602E % ldot as a punctuation mark + +% Put back the missing lowercase Greek characters. +\mathchardef\alpha="0\@tempa 0B +\mathchardef\beta="0\@tempa 0C +\mathchardef\gamma="0\@tempa 0D +\mathchardef\delta="0\@tempa 0E +\mathchardef\epsilon="0\@tempa 0F +\mathchardef\zeta="0\@tempa 10 +\mathchardef\eta="0\@tempa 11 +\mathchardef\theta="0\@tempa 12 +\mathchardef\iota="0\@tempa 13 +\mathchardef\kappa="0\@tempa 14 +\mathchardef\lambda="0\@tempa 15 +\mathchardef\mu="0\@tempa 16 +\mathchardef\nu="0\@tempa 17 +\mathchardef\xi="0\@tempa 18 +\mathchardef\pi="0\@tempa 19 +\mathchardef\rho="0\@tempa 1A +\mathchardef\sigma="0\@tempa 1B +\mathchardef\tau="0\@tempa 1C +\mathchardef\upsilon="0\@tempa 1D +\mathchardef\phi="0\@tempa 1E +\mathchardef\chi="0\@tempa 1F +\mathchardef\psi="0\@tempa 20 +\mathchardef\omega="0\@tempa 21 +\mathchardef\varepsilon="0\@tempa 22 +\mathchardef\vartheta="0\@tempa 23 +\mathchardef\varpi="0\@tempa 24 +\mathchardef\varrho="0\@tempa 25 +\mathchardef\varsigma="0\@tempa 26 +\mathchardef\varphi="0\@tempa 27 + +% Put back other missing characters. +\mathchardef\imath="0110 +\mathchardef\jmath="0\@tempa 7C +\mathchardef\ell="0\@tempa 60 +\mathchardef\wp="0\@tempa 7D +\mathchardef\partial="0\@tempa 40 +\mathchardef\flat="0\@tempa 5B +\mathchardef\natural="0\@tempa 5C +\mathchardef\sharp="0\@tempa 5D +\mathchardef\smile="3\@tempa 5E +\mathchardef\frown="3\@tempa 5F +\mathchardef\leftharpoonup="3\@tempa 28 +\mathchardef\leftharpoondown="3\@tempa 29 +\mathchardef\rightharpoonup="3\@tempa 2A +\mathchardef\rightharpoondown="3\@tempa 2B +\mathchardef\lhook="3\@tempa 2C \def\hookrightarrow{\lhook\joinrel\rightarrow} +\mathchardef\rhook="3\@tempa 2D \def\hookleftarrow{\leftarrow\joinrel\rhook} +\mathchardef\star="2\@tempa 3F +\mathchardef\vecMC="0\@tempa 7E +\def\vec{\mathaccent\the\vecMC } + + +\input psfonts.sty +\input psgreek.sty +} +% +% This is LaTeX2e style by Alexey Vikhlinin to mix Times for text and math +% and CM for greek and symbols. +% +% +% +% +% +{ +\def\fileversion{5.2} +\def\filedate{1995/08/16} +\def\docdate {1995/03/12} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{apjfonts}[\filedate{} Times + math package] + +\let\rold\r +\def\AA{\rold A} +\RequirePackage[T1]{fontenc} \let\r\relax + +\DeclareOption{onecolumn}{ +\relax % this style is often used as \usepackage{emulateapj,timesfonts} +} +\ExecuteOptions{} +\ProcessOptions + +\renewcommand{\sfdefault}{phv} +\renewcommand{\rmdefault}{ptm} +\renewcommand{\ttdefault}{pcr} + +\DeclareSymbolFont{cmoperators} {OT1}{cmr}{m}{n} +\DeclareSymbolFont{cmitoperators} {OT1}{cmr}{m}{it} +\DeclareSymbolFont{operators} {OT1}{ptm}{m}{n} +%\DeclareSymbolFont{ptmoperators} {OT1}{ptmcm}{m}{n} +\DeclareSymbolFont{letters} {OML}{ptmcm}{m}{it} +%\DeclareSymbolFont{rusletters} {OML}{petersburg}{m}{it} +\DeclareSymbolFont{ptmletters} {OML}{ptmcm}{m}{it} +\DeclareSymbolFont{cmletters} {OML}{cmm}{m}{it} +\DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n} +\DeclareSymbolFont{ptmsymbols} {U}{psy}{m}{n} +\DeclareSymbolFont{largesymbols} {OMX}{cmex}{m}{n} +\DeclareSymbolFont{bold} {OT1}{ptm}{bx}{n} +\DeclareSymbolFont{italic} {OT1}{ptm}{m}{it} + +\SetSymbolFont{cmoperators} {bold}{OT1}{cmr}{b}{n} +\SetSymbolFont{cmitoperators} {bold}{OT1}{cmr}{bx}{it} +\SetSymbolFont{operators} {bold}{OT1}{ptm}{bx}{n} +%\SetSymbolFont{ptmoperators} {bold}{OT1}{ptmCM}{b}{n} +\SetSymbolFont{letters} {bold}{OML}{ptmCM}{b}{it} +%\SetSymbolFont{rusletters} {bold}{OML}{petersburg}{bx}{it} +\SetSymbolFont{ptmletters} {bold}{OML}{ptmCM}{b}{it} +\SetSymbolFont{cmletters} {bold}{OML}{cmm}{b}{it} +\SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n} +\SetSymbolFont{largesymbols} {bold}{OMX}{cmex}{m}{n} +\SetSymbolFont{bold} {bold}{OT1}{ptm}{bx}{n} +\SetSymbolFont{italic} {bold}{OT1}{ptm}{b}{it} + + +\DeclareMathAlphabet{\mathbf}{OT1}{ptm}{bx}{n} +\DeclareMathAlphabet{\mathit}{OT1}{ptm}{m}{it} +\DeclareMathAlphabet{\mathbit}{OT1}{ptm}{bx}{it} + +\DeclareMathSymbol{\omicron}{0}{operators}{`\o} + +\thinmuskip=2mu +\medmuskip=2.5mu plus 1mu minus 1mu +\thickmuskip=4mu plus 1.5mu minus 1mu + +% \everydisplay {\thinmuskip=2mu \medmuskip=2.5mu plus 1mu minus 1mu% +% \thickmuskip=4mu plus 1.5mu minus 1mu} +% \thinmuskip=2mu +% \medmuskip=2mu minus 1mu +% \thickmuskip=2mu minus 1mu + +% % \def\boldmath{% +% % \@warning{there is no bold Symbol font}% +% % \global\let\boldmath=\relax +% % } + + +%\DeclareMathSymbol{/} {\mathord}{cmletters}{'075} +%\DeclareMathSymbol{=} {\mathrel}{cmoperators}{'075} +%\DeclareMathSymbol{+} {\mathbin}{cmoperators}{'053} +%\DeclareMathSymbol{(} {\mathopen}{cmoperators}{'050} +%\DeclareMathSymbol{)} {\mathclose}{cmoperators}{'051} + +%\DeclareMathSymbol{>} {\mathrel}{ptmsymbols}{62} +%\DeclareMathSymbol{<} {\mathrel}{ptmsymbols}{60} +\DeclareMathSymbol{-} {\mathbin}{ptmsymbols}{45} +\DeclareMathSymbol{+} {\mathbin}{ptmsymbols}{43} +%\DeclareMathSymbol{/} {\mathord}{ptmsymbols}{164} + +\DeclareMathSymbol{\alpha} {\mathord}{cmletters}{'013} +\DeclareMathSymbol{\beta} {\mathord}{cmletters}{'014} +\DeclareMathSymbol{\gamma} {\mathord}{cmletters}{'015} +\DeclareMathSymbol{\delta} {\mathord}{cmletters}{'016} +\DeclareMathSymbol{\epsilon} {\mathord}{cmletters}{'017} +\DeclareMathSymbol{\zeta} {\mathord}{cmletters}{'020} +\DeclareMathSymbol{\eta} {\mathord}{cmletters}{'021} +\DeclareMathSymbol{\theta} {\mathord}{cmletters}{'022} +\DeclareMathSymbol{\iota} {\mathord}{cmletters}{'023} +\DeclareMathSymbol{\kappa} {\mathord}{cmletters}{'024} +\DeclareMathSymbol{\lambda} {\mathord}{cmletters}{'025} +\DeclareMathSymbol{\mu} {\mathord}{cmletters}{'026} +\DeclareMathSymbol{\nu} {\mathord}{cmletters}{'027} +\DeclareMathSymbol{\xi} {\mathord}{cmletters}{'030} +%%% \DeclareMathSymbol{o} {\mathord}{cmletters}{'157} +\DeclareMathSymbol{\pi} {\mathord}{cmletters}{'031} +\DeclareMathSymbol{\rho} {\mathord}{cmletters}{'032} +\DeclareMathSymbol{\sigma} {\mathord}{cmletters}{'033} +\DeclareMathSymbol{\tau} {\mathord}{cmletters}{'034} +\DeclareMathSymbol{\upsilon} {\mathord}{cmletters}{'035} +\DeclareMathSymbol{\phi} {\mathord}{cmletters}{'036} +\DeclareMathSymbol{\chi} {\mathord}{cmletters}{'037} +\DeclareMathSymbol{\psi} {\mathord}{cmletters}{'040} +\DeclareMathSymbol{\omega} {\mathord}{cmletters}{'041} + + + +\DeclareMathSymbol{\varepsilon} {\mathord}{cmletters}{'042} +\DeclareMathSymbol{\vartheta} {\mathord}{cmletters}{'043} +\DeclareMathSymbol{\varomega} {\mathord}{cmletters}{'044} +\DeclareMathSymbol{\varrho} {\mathord}{cmletters}{'045} +\DeclareMathSymbol{\varsigma} {\mathord}{cmletters}{'046} +\DeclareMathSymbol{\varphi} {\mathord}{cmletters}{'047} + +\DeclareMathSymbol{\partial} {\mathord}{cmletters}{'100} +% Partial - from russian fonts +% \DeclareMathSymbol{\partial} {\mathord}{rusletters}{"C4} % correct for WIN + % enc + reencoding + +\DeclareMathSymbol{\ell} {\mathord}{cmletters}{'140} +\DeclareMathSymbol{\ell} {\mathord}{cmletters}{'140} +\def\hbar{{\raise-0.15truept\hbox{$\mkern-0.5mu\barbar$}\mkern-8.5muh}} + + +\DeclareMathSymbol\Gamma {\mathord}{cmoperators}{"00} +\DeclareMathSymbol\Delta {\mathord}{cmoperators}{"01} +\DeclareMathSymbol\Theta {\mathord}{cmoperators}{"02} +\DeclareMathSymbol\Lambda {\mathord}{cmoperators}{"03} +\DeclareMathSymbol\Xi {\mathord}{cmoperators}{"04} +\DeclareMathSymbol\Pi {\mathord}{cmoperators}{"05} +\DeclareMathSymbol\Sigma {\mathord}{cmoperators}{"06} +\DeclareMathSymbol\Upsilon {\mathord}{cmoperators}{"07} +\DeclareMathSymbol\Phi {\mathord}{cmoperators}{"08} +\DeclareMathSymbol\Psi {\mathord}{cmoperators}{"09} +\DeclareMathSymbol\Omega {\mathord}{cmoperators}{"0A} + + + + +\DeclareMathSymbol\varGamma {\mathord}{cmletters}{"00} +\DeclareMathSymbol\varDelta {\mathord}{cmletters}{"01} +\DeclareMathSymbol\varTheta {\mathord}{cmletters}{"02} +\DeclareMathSymbol\varLambda {\mathord}{cmletters}{"03} +\DeclareMathSymbol\varXi {\mathord}{cmletters}{"04} +\DeclareMathSymbol\varPi {\mathord}{cmletters}{"05} +\DeclareMathSymbol\varSigma {\mathord}{cmletters}{"06} +\DeclareMathSymbol\varUpsilon {\mathord}{cmletters}{"07} +\DeclareMathSymbol\varPhi {\mathord}{cmletters}{"08} +\DeclareMathSymbol\varPsi {\mathord}{cmletters}{"09} +\DeclareMathSymbol\varOmega {\mathord}{cmletters}{"0A} + +\DeclareMathAccent{\acute} {\mathalpha}{cmoperators}{'023} +\DeclareMathAccent{\bar} {\mathalpha}{cmoperators}{'026} +\DeclareMathAccent{\breve} {\mathalpha}{cmoperators}{'025} +\DeclareMathAccent{\check} {\mathalpha}{cmoperators}{'024} +\DeclareMathAccent{\ddot} {\mathalpha}{cmitoperators}{'177} +\DeclareMathAccent{\dot} {\mathalpha}{cmitoperators}{'137} +\DeclareMathAccent{\grave} {\mathalpha}{cmoperators}{'022} +\DeclareMathAccent{\hat} {\mathalpha}{cmoperators}{'136} +\DeclareMathAccent{\tild} {\mathalpha}{cmoperators}{'176} +\DeclareMathAccent{\vec} {\mathord} {cmletters} {"7E} + +\DeclareMathSymbol{\barbar} {\mathalpha}{cmoperators}{'026} +} + +\endinput diff --git a/paper/authors.tex b/paper/authors.tex new file mode 100644 index 00000000..89ae3f77 --- /dev/null +++ b/paper/authors.tex @@ -0,0 +1,101 @@ +% paper leads + +\author[0000-0001-9789-9646]{Joe Zuntz} +\affiliation{Institute for Astronomy, University of Edinburgh, Edinburgh EH9 3HJ, United Kingdom} + +\author[0000-0001-7956-0542]{Fran\c{c}ois Lanusse} +\affiliation{AIM, CEA, CNRS, Universit\'e Paris-Saclay, Universit\'e Paris Diderot, Sorbonne Paris Cit\'e, F-91191 Gif-sur-Yvette, France} + +\author[0000-0002-8676-1622]{Alex I. Malz} +\affiliation{German Centre of Cosmological Lensing, Ruhr-Universit\"{a}t, Universit\"{a}tsstra{\ss}e 150, 44801 Bochum, Germany} + +\author[0000-0001-7363-7932]{Angus H. Wright} +\affiliation{German Centre of Cosmological Lensing, Ruhr-Universit\"{a}t, Universit\"{a}tsstra{\ss}e 150, 44801 Bochum, Germany} + +\author[0000-0002-8713-3695]{An\v{z}e Slosar} +\affiliation{Brookhaven National Laboratory, Upton NY 11973, USA} + +%main partticipants and text contributors (alphabetical) +\author[0000-0003-1820-8486]{Bela Abolfathi} +\affiliation{Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA} + +\author[0000-0002-4598-9719]{David Alonso} +\affiliation{Astrophysics, University of Oxford, Denys Wilkinson Building, Keble Road, Oxford, OX1 3RH, UK} + + +\author[0000-0002-9964-1005]{Abby Bault} +\affiliation{Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA} + +\author[0000-0003-4383-2969]{Cl\'{e}cio R. Bom} +\affiliation{Centro Brasileiro de Pesquisas F\'isicas, Rua Dr. Xavier Sigaud 150, 22290-180 Rio de Janeiro, RJ, Brazil} +\affiliation{Centro Federal de Educa\c{c}\~{a}o Tecnol\'{o}gica Celso Suckow da Fonseca, Rodovia M\'{a}rcio Covas, lote J2, quadra J - Itagua\'{i} (Brazil)} + + +\author[0000-0001-9506-5680]{Massimo Brescia} +\affiliation{INAF - Osservatorio Astronomico di Capodimonte, via Moiariello 16, I-80131, Napoli Italy} + +\author[0000-0002-7767-5044]{Adam Broussard} +\affiliation{Department of Physics and Astronomy, Rutgers, the State University, Piscataway, NJ 08854, USA} + +\author[0000-0002-1590-6927]{Jean-Eric Campagne} +\affiliation{Universit\'e Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France} + +\author[0000-0002-3787-4196]{Stefano Cavuoti} +\affiliation{INAF - Osservatorio Astronomico di Capodimonte, via Moiariello 16, I-80131, Napoli Italy} +\affiliation{INFN - Sezione di Napoli, via Cinthia 21, I-80126 Napoli, Italy} +\affiliation{Department of Physics ``E. Pancini'', University of Naples Federico II, via Cintia, 21, I-80126 Napoli, Italy} + + +\author[0000-0001-9196-7038]{Eduardo S. Cypriano} +\affiliation{Universidade de S\~ao Paulo, IAG, Rua do Mat\~ao 1225, S\~ao Paulo, SP, Brazil} + + +\author[0000-0002-6395-3410 ]{Bernardo M. O. Fraga} +\affiliation{Centro Brasileiro de Pesquisas F\'isicas, Rua Dr. Xavier Sigaud 150, 22290-180 Rio de Janeiro, RJ, Brazil} + +\author[0000-0003-1530-8713]{Eric Gawiser} +\affiliation{Department of Physics and Astronomy, Rutgers, the State University, Piscataway, NJ 08854, USA} + + +\author[0000-0002-0226-9893]{Elizabeth J. Gonzalez} +\affiliation{Centro Brasileiro de Pesquisas F\'isicas, Rua Dr. Xavier Sigaud 150, 22290-180 Rio de Janeiro, RJ, Brazil} +\affiliation{Instituto de Astronom\'{\i}a Te\'orica y Experimental (IATE-CONICET), Laprida 854, X5000BGR, C\'ordoba, Argentina.} +\affiliation{Observatorio Astron\'omico de C\'ordoba, Universidad Nacional de C\'ordoba, Laprida 854, X5000BGR, C\'ordoba, Argentina.} + + +\author[0000-0002-0676-3661]{Dylan Green} +\affiliation{Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA} + +\author[0000-0002-3065-457X]{Peter Hatfield} +\affiliation{Astrophysics, University of Oxford, Denys Wilkinson Building, Keble Road, Oxford, OX1 3RH, UK} + +\author[0000-0001-9298-3523]{Kartheik Iyer} +\affiliation{Dunlap Institute for Astronomy and Astrophysics, University of Toronto, 50 St George St, Toronto, ON M5S 3H4, Canada} + +\author[0000-0002-8828-5463]{David Kirkby} +\affiliation{Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA} + +\author[0000-0003-2792-6252]{Andrina Nicola} +\affiliation{Department of Astrophysical Sciences, Princeton University, Peyton Hall, Princeton, NJ 08544, USA} + +\author[0000-0003-3827-4691]{Erfan Nourbakhsh} +\affiliation{Department of Physics and Astronomy, University of California, Davis, Davis, CA 95616, USA} + +\author[0000-0002-8318-8226]{Andy Park} +\affiliation{Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA} + +\author[0000-0002-1594-208X]{Gabriel Teixeira} +\affiliation{Centro Brasileiro de Pesquisas F\'isicas, Rua Dr. Xavier Sigaud 150, 22290-180 Rio de Janeiro, RJ, Brazil} + +\author[0000-0003-1468-8232]{Katrin Heitmann} +\affiliation{Argonne National Laboratory, 9700 S Cass Ave, Lemont, IL 60439, USA} + +\author[0000-0002-2545-1989]{Eve Kovacs} +\affiliation{Argonne National Laboratory, 9700 S Cass Ave, Lemont, IL 60439, USA} + +% DESC Builder authors +\author[0000-0002-1200-0820]{Yao-Yuan Mao} +\affiliation{Department of Physics and Astronomy, Rutgers University, Piscataway, NJ 08854, USA} + +\author{The LSST Dark Energy Science Collaboration (LSST DESC)} +\noaffiliation diff --git a/paper/authors2.tex b/paper/authors2.tex new file mode 100644 index 00000000..f7aa6f29 --- /dev/null +++ b/paper/authors2.tex @@ -0,0 +1,3 @@ +\author{Joe Zuntz\altaffilmark{1}, Fran\c{c}ois Lanusse\altaffilmark{2}, Alex I. Malz\altaffilmark{3}, Angus H. Wright\altaffilmark{3}, An\v{z}e Slosar\altaffilmark{4}, Bela Abolfathi\altaffilmark{5}, David Alonso\altaffilmark{6}, Abby Bault\altaffilmark{5}, Cl\'{e}cio R. Bom\altaffilmark{7}\altaffilmark{8}, Massimo Brescia\altaffilmark{9}, Adam Broussard\altaffilmark{10}, Jean-Eric Campagne\altaffilmark{11}, Stefano Cavuoti\altaffilmark{9}\altaffilmark{12}\altaffilmark{13}, Eduardo S. Cypriano\altaffilmark{14}, Bernardo M. O. Fraga\altaffilmark{7}, Eric Gawiser\altaffilmark{10}, Elizabeth J. Gonzalez\altaffilmark{7}\altaffilmark{15}\altaffilmark{16}, Dylan Green\altaffilmark{5}, Peter Hatfield\altaffilmark{6}, Kartheik Iyer\altaffilmark{17}, David Kirkby\altaffilmark{5}, Andrina Nicola\altaffilmark{18}, Erfan Nourbakhsh\altaffilmark{19}, Andy Park\altaffilmark{5}, Gabriel Teixeira\altaffilmark{7}, Katrin Heitmann\altaffilmark{20}, Eve Kovacs\altaffilmark{20}, Yao-Yuan Mao\altaffilmark{21},} +\collaboration{The LSST Dark Energy Science Collaboration, LSST DESC} + diff --git a/paper/desc-tex b/paper/desc-tex new file mode 160000 index 00000000..26c3572a --- /dev/null +++ b/paper/desc-tex @@ -0,0 +1 @@ +Subproject commit 26c3572acf1cdcf3eb9b26cd4973170ff8eb97aa diff --git a/paper/openjournal.cls b/paper/openjournal.cls new file mode 100644 index 00000000..d45e0592 --- /dev/null +++ b/paper/openjournal.cls @@ -0,0 +1,1593 @@ +%% This is openjournal.cls, version September 6, 2015 +%% Heavily based on emulateapj. +%% +%% Available options: +%% +%% [twocolumn] - two-column mode +%% [onecolumn] - (default) main text in one-column mode +%% [apj] - typeset in the style of ApJ. +%% [apjl] - (default) typeset in the style of ApJ Letters +%% [tighten] - some adjustments to approximate grid typesetting +%% [numberedappendix] - number appendix sections as A, B, etc +%% [appendixfloats] - use separate numbering for floats within appendix +%% [twocolappendix] - make appendix in two-col mode in a two-col paper +%% [revtex4] - force using revtex4 (rather than 4-1) +%% [astrosymb] - load Astrosymb font and define \astro commands from aastex +%% +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Copyright 2015 The Open Journal of Astrophysics +%% +%% Originally based on emulateapj.cls by Alexey Vikhlinin +%% The first version of this package was written by Maxim Markevitch. +%% Pieces of AASTeX code are used for compatibility with aastex.cls. +%% +%% This program can be redistributed and/or modified under the terms of +%% the LaTeX Project Public License available from CTAN archives in +%% macros/latex/base/lppl.txt. This means you are free to use and +%% distribute this package; however, if you modify anything, please +%% change the file name and remove the author's email address. +%% +%% The Open Journal of Astrophysics +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% `openjournal' is a LaTeX2e class provided by the Open Journal of Astrophysics as a suggested template for submissions. +%% +%% openjournal requires revtex4.cls. If you don't have it already, it can be +%% downloaded from http://publish.aps.org/revtex4/ (it's a small package). +%% Other external packages used are latexsym, graphicx, amssymb, longtable, +%% epsf. They should already be present in the modern TeX distributions; if +%% not, download them from www.ctan.org. +%% +%% +%% For release notes and change log, see at bottom +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\openjournaltemplate@ver{09/06/15} + + +\ProvidesClass{openjournal} + +\newif\if@revtex@four@one@ +\@revtex@four@one@true +\DeclareOption{revtex4}{\@revtex@four@one@false} + +\newif\if@two@col +\DeclareOption{twocolumn}{\@two@coltrue} +\DeclareOption{onecolumn}{\@two@colfalse} + +\newif\if@two@col@app +\DeclareOption{twocolappendix}{\@two@col@apptrue} +\DeclareOption{onecolappendix}{\@two@col@appfalse} + + +\newif\if@chicago +\DeclareOption{chicago}{\@chicagotrue} +\DeclareOption{iop}{\@chicagofalse} + +\newlength{\bibbaselineskip}\setlength{\bibbaselineskip}{3.075mm} +\newif\if@apj@letter +\DeclareOption{apj}{ + \setlength{\bibbaselineskip}{2.7mm} + \def\apjsecfont{\normalsize} + \def\secnum@size{\small} + \def\subsecnum@size{\normalsize} + \@apj@letterfalse +} +\DeclareOption{apjl}{ + \setlength{\bibbaselineskip}{3.075mm} + \def\apjsecfont{\footnotesize} + \def\secnum@size{\small} + \def\subsecnum@size{\small} + \@apj@lettertrue +} + +\DeclareOption{astrosymb}{ + \def\astro#1{\leavevmode\hbox{\astro@font#1}}% + \def\load@astro@font{% + \font\astro@font=Astrosym at\f@size pt + }% + \AtBeginDocument{\load@astro@font} +} + +\DeclareOption{tighten}{ +% lineskiplimits to facilitate grid typesetting + \lineskiplimit=-2mm +} + +\def\AppendixApjSectionMarkInTitle#1{\relax} +\DeclareOption{numberedappendix}{ + \def\AppendixApjSectionMarkInTitle#1{#1.\ } +} + +\newif\if@number@appendix@floats\@number@appendix@floatsfalse +\DeclareOption{appendixfloats}{ + \@number@appendix@floatstrue +} + + +\def\center@table@notes{% + \def\@spew@tblnotes{% + \centerline{\begin{minipage}{\pt@width}\spew@tblnotes\end{minipage}}% + }% +} + +\def\left@just@table@notes{% + \def\@spew@tblnotes{\spew@tblnotes}% +} + + +\left@just@table@notes + +\ExecuteOptions{apjl,onecolumn,chicago,onecolappendix} + +\ProcessOptions + +\if@revtex@four@one@ + \IfFileExists{revtex4-1.cls}{ + \def\@revtex@cls{revtex4-1} + }{ + \@revtex@four@one@false + \def\@revtex@cls{revtex4} + } +\else + \def\@revtex@cls{revtex4} +\fi + +\let\@startsection@from@latex=\@startsection + +\if@two@col + \LoadClass[twocolumn,nofootinbib,showkeys,twoside,floatfix,unsortedaddress,flushbottom,10pt,aps,pra]{\@revtex@cls} +\else + \LoadClass[nofootinbib,showkeys,twoside,floatfix,unsortedaddress,flushbottom,notitlepage,10pt,aps,pra]{\@revtex@cls} +\fi +\def\blankaffiliation{~}% + +\if@chicago + \def\@eapj@cap@font{\scshape} + \def\@eapj@figname{Fig.} + \def\@eapj@tabname{TABLE} + \def\@eapj@ApJLetters{ApJ} +\else + \def\@eapj@cap@font{\bfseries} + \def\@eapj@figname{Figure} + \def\@eapj@tabname{Table} + \def\@eapj@ApJLetters{ApJL} +\fi + +% Restore natbib package without sorting. +\def\NAT@sort{0} +\def\NAT@cmprs{0} +% only redefine sort@cites for natbib versions < 2009 +\@ifundefined{NAT@sort@cites@}{\def\NAT@sort@cites#1{\edef\NAT@cite@list{#1}}}% + +\RequirePackage{latexsym}% +\RequirePackage{graphicx}% +\RequirePackage{amssymb}% +\RequirePackage{longtable}% +%\RequirePackage{hyperref} + +\newenvironment{bottompar}{\par\vspace*{\fill}}{\clearpage} + +\newcommand{\bibstyle@aas}{\bibpunct{(}{)}{;}{a}{}{,}}% +\@citestyle{aas}% + + +\let\@startsection=\@startsection@from@latex +\def\baselinestretch{1.0} +\AtBeginDocument{\def\arraystretch{1.0}} + +\if@revtex@four@one@ +\def\raggedcolumn@sw#1#2{#2} % implement flushbottom as it was in revtex4 +\fi + +\RequirePackage{epsf,graphicx} + +%%%%%%%% The following code is taken from size10.clo; it fixes +%%%%%%%% aastex's definition of type sizes +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{10.56} + \abovedisplayskip 2.2mm \@plus2\p@ \@minus1\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 2.2mm \@plus2\p@ \@minus1\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{9.68}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{8.36}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt} +\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt} +\renewcommand\large{\@setfontsize\large\@xiipt{14}} +\renewcommand\Large{\@setfontsize\Large\@xivpt{18}} +\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}} +\renewcommand\huge{\@setfontsize\huge\@xxpt{25}} +\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}} +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\headheight{12\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} + + + + +% **************************************************** +% * TWO AND SINGLE ONE COLUMN STYLES: AV * +% **************************************************** +% + +%%%%% include atbeginend.sty by AV: + +% Copy \begin and \end to \BeginEnvironment and \EndEnvironment +\let\BeginEnvironment=\begin +\let\EndEnvironment=\end +%% \ifundefined from TeXbook +\def\IfUnDef#1{\expandafter\ifx\csname#1\endcsname\relax} +% Null command needed to eat its argument +\def\NullCom#1{} +\def\begin#1{% +% if defined \BeforeBeg for this environment, execute it +\IfUnDef{BeforeBeg#1}\else\csname BeforeBeg#1\endcsname\fi% +\IfUnDef{AfterBeg#1}% This is done to skip the command for environments + % which can take arguments, like multicols; YOU MUST NOT + % USE \AfterBegin{...}{...} for such environments! + \let\SaveBegEnd=\BeginEnvironment% +\else + % Start this environment + \BeginEnvironment{#1}% + % and execute code after \begin{environment} + \csname AfterBeg#1\endcsname + \let\SaveBegEnd=\NullCom +\fi +\SaveBegEnd{#1} +} +\def\end#1{% +% execute code before \end{environment} +\IfUnDef{BeforeEnd#1}\else\csname BeforeEnd#1\endcsname\fi% +% close this environment +\EndEnvironment{#1} +% and execute code after \begin{environment} +\IfUnDef{AfterEnd#1}\else\csname AfterEnd#1\endcsname\fi% +} +\long\def\BeforeBegin#1#2{\expandafter\gdef\csname BeforeBeg#1\endcsname {#2}} +\long\def\BeforeEnd #1#2{\expandafter\gdef\csname BeforeEnd#1\endcsname {#2}} +\long\def\AfterBegin #1#2{\expandafter\gdef\csname AfterBeg#1\endcsname {#2}} +\long\def\AfterEnd #1#2{\expandafter\gdef\csname AfterEnd#1\endcsname{#2}} + +%%%% end of atbeginend.sty + +% **************************************** +% * PAGE LAYOUT * +% **************************************** + +% Page size, spacing parameters, etc. + +\textwidth=7.1in +\columnsep=0.3125in +\parindent=0.125in +\voffset=-20mm +\hoffset=-7.5mm + +\topmargin=0in +\headheight=.15in +\headsep=0.5in +\oddsidemargin=0in +\evensidemargin=0in +\parskip=0cm + +%\tolerance=600 % 3x "normal" value; cuts down on overfull complaints + +%% AV,MM, to have 64 lines per column, with textheight 25cm: +\textheight=64\baselineskip +\textheight=\baselinestretch\textheight +\ifdim\textheight>25.2cm\textheight=25.0cm\fi + +\topskip\baselineskip +\maxdepth\baselineskip + + +\let\tighten=\relax +\let\tightenlines=\tighten +\let\singlespace=\relax +\let\doublespace=\relax + +\def\eqsecnum{ + \@newctr{equation}[section] + \def\theequation{\hbox{\normalsize\arabic{section}-\arabic{equation}}}} + +%% running heads: +\def\lefthead#1{\gdef\@versohead{#1}} \lefthead{\relax} +\def\righthead#1{\gdef\@rectohead{#1}} \righthead{\relax} +\let\shorttitle=\lefthead % New AASTEX commands +\let\shortauthors\righthead % New AASTEX commands + +\if@chicago +%% MM Create "apjheads" page style: +\def\ps@apjheads{\let\@mkboth\markboth + \def\@evenfoot{} + \def\@evenhead{\lower9mm\hbox to\textwidth{ + \rm\thepage\hfil \rm\@rectohead \hfil}}} + \def\@oddfoot{} + \def\@oddhead{\lower9mm\hbox to\textwidth{ + \hfil\rm\@versohead\hfil \rm\thepage}} +\else +\def\ps@apjheads{\let\@mkboth\markboth + \def\@evenfoot{} + \def\@evenhead{\lower9mm\hbox to\textwidth{ + \rm\thepage\hfil \rm\textsc{\@rectohead} \hfil}}} + \def\@oddfoot{} + \def\@oddhead{\lower9mm\hbox to\textwidth{ + \hfil\rm\textsc{\@versohead}\hfil \rm\thepage}} +\fi + +\@twosidetrue +\ps@apjheads + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TITLE PAGE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\long\def\frontmatter@title@above{ +\vspace*{-\headsep}\vspace*{\headheight} +\footnotesize +{\footnotesize\textsc{\@journalinfo}}\par +{\scriptsize Preprint typeset using \LaTeX\ style openjournal v.\ + \openjournaltemplate@ver}\par\vspace*{-\baselineskip}\vspace*{0.625in} +}% +\def\frontmatter@title@produce{% + \begingroup + \frontmatter@title@above + \frontmatter@title@format + \@title + \@ifx{\@title@aux\@title@aux@cleared}{}{% + \expandafter\frontmatter@footnote\expandafter{\@title@aux}% + }% + \par +%% \class@warn{Unused short title ignored}% + \frontmatter@title@below + \endgroup +}% +\renewcommand\title[2][]{% + \def\@title{\uppercase{#2}}% + \def\@shorttitle{#1}% + \let\@AF@join\@title@join +}% +\def\frontmatter@title@format{\normalsize\centering} +\def\frontmatter@title@below{\vspace*{-2.63\baselineskip\vspace*{0.25in}}}% + +\def\frontmatter@above@affilgroup{\vspace*{0.25in}}% +\def\frontmatter@authorformat{\small\scshape\centering}% +\def\frontmatter@affiliationfont{\normalfont\footnotesize}% + +\def\frontmatter@finalspace{\vspace*{-\baselineskip}\vspace*{0.375in}} + +\def\@separator{\\}% + +\def\frontmatter@footnote#1{% + \begingroup + \@booleanfalse\temp@sw + \def\@tempa{#1}% + \let\@tempb\@empty + \def\@TBN@opr{\y@match\@tempa}% + \@FMN@list + \temp@sw{% + \expandafter\frontmatter@footnotemark + \expandafter{\@tempb}% + }{% + \def\@thefnmark{\relax} + \frontmatter@footnotetext{#1} + }% + \endgroup +}% + +\newcounter{front@matter@foot@note}\setcounter{front@matter@foot@note}{0} + +\def\frontmatter@above@affiliation{\vspace*{0.5mm}}% +\renewcommand\affiliation[1]{% + \move@AU\move@AF% + \begingroup% + \@affiliation{\hspace*{2mm}#1}% +}% +\let\affil=\affiliation + +\def\affil@mark#1{\textsuperscript{#1}} +\def\affile@mark@pad{0.2em} + +\def\altaffilmark#1{\affil@mark{#1}} + +% Fight poor revtex algorithm for altaffiliation: +\def\@alt@affil@kill@next@symbol#1{\relax} +\newtoks\alt@affil@toks \alt@affil@toks{\@alt@affil@kill@next@symbol} +\newtoks\alt@affil@toks@count \alt@affil@toks@count{} + + +\def\altaffiltext#1#2{% +\global\alt@affil@toks\expandafter{\the\alt@affil@toks\\\hspace*{3mm}\affil@mark{#1}\hspace*{\affile@mark@pad}#2}% +\global\alt@affil@toks@count\expandafter{\the\alt@affil@toks@count\stepcounter{front@matter@foot@note}}% +} +\let\@author@finish@revtex=\@author@finish +\def\@author@finish{% +\if!\the\alt@affil@toks@count!% +\relax +\else +\altaffiliation{\the\alt@affil@toks}\the\alt@affil@toks@count +\fi +\@author@finish@revtex +} + +%\def\altaffiltext#1#2{\altaffiliation{\hspace*{3mm}\textsuperscript{#1}\hspace*{0.7mm}#2}\stepcounter{front@matter@foot@note}} + +%% end altaffiliation + +\let\old@foot@note@mark=\footnotemark +\let\old@foot@note@text=\footnotetext +\def\footnotemark[#1]{\altaffilmark{#1}} +\def\footnotetext[#1]#2{\altaffiltext{#1}{#2}} + +% ABSTRACT +\if@chicago + \def\frontmatter@abstractfont{\normalsize\parindent=0.125in}% +\else + \def\frontmatter@abstractfont{\normalsize\parindent=0.0in}% +\fi +\def\frontmatter@abstractwidth{6in} +\def\frontmatter@preabstractspace{0.0\baselineskip} +\def\frontmatter@postabstractspace{0.0\baselineskip} + +\def\abstractname{ABSTRACT} +\long\def\frontmatter@abstractheading{% + \vspace*{-\baselineskip}\vspace*{1.5pt} + \centerline{\itshape\footnotesize\@submitted} + \vspace*{0.13189in} + \begingroup + \centering + \abstractname + \vskip 1mm + \par + \endgroup + \everypar{\rightskip=0.5in\leftskip=\rightskip}\par +}% + +% Redefine the LaTeX \and command for this style. +\def\and{\author{\vspace*{-0.2in}and\vspace*{-0.558cm}}\noaffiliation} +\def\@listand{\@ifnum{\@tempcnta=\tw@}{\andname\space}{}}% + +% **************************************** +% * KEYWORDS * +% **************************************** + +\if@chicago + \def\@keys@name{\textit{Subject headings:}\/~\mbox{}}% +\else + \def\@keys@name{\textit{Keywords:}\/~\mbox{}}% +\fi +\newlength{\keys@width} +\def\frontmatter@keys@format{\vspace*{0.5mm}% + \settowidth{\keys@width}{\normalsize\@keys@name}% + \rightskip=0.5in\leftskip=\rightskip\parindent=0pt% + \hangindent=\keys@width\hangafter=1\normalsize}% +\def\@keywords@produce#1{% + \showKEYS@sw{% + \begingroup% + \frontmatter@keys@format% + \@keys@name#1\par + \endgroup + }{% + \@if@empty{#1}{}{% + \class@warn{If you want your keywords to appear in your output, use document class option showkeys}% + }% + }% +}% + +\let\subjectheadings=\keywords + +% **************************************** +% * FOOTNOTES * +% **************************************** + +% Modify code from revtex: +\def\@xfootnotemark@ltx[#1]{% + \begingroup +% \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{#1}% + \endgroup + \H@@footnotemark +}% +% Modify code from LaTeX to fix footnotes: +\def\@xfootnotenext[#1]{% + \begingroup +% \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{#1}% + \endgroup + \@footnotetext} + + + +% Footnotes on the last page: user issues \lastpagefootnotes. It catches all +% footnotes and issues them before \begin{refernces} or +% \begin{\thebibliography} or \begin{appendix}, whichever comes first, +% at the end of right column. +\newcounter{lastfootnote} +\let\orig@footnote=\footnote +% +\def\spit@out@footnotes@{\addtocounter{footnote}{-\c@lastfootnote}\vspace*{-\baselineskip}\vspace*{\skip\footins}\bgroup\footnotesize\lastfootnote\par\egroup\let\footnote=\orig@footnote} +% +\let\spit@out@footnotes\relax +% +\long\def\lastpagefootnotes{% +\raggedbottom% Have to use flushbottom with revtex4-1 but it eats away + % last page footnotes +\setcounter{lastfootnote}{0} +\long\gdef\lastfootnote{\mbox{}} +\let\spit@out@footnotes\spit@out@footnotes@ +\long\def\footnote##1{\refstepcounter{lastfootnote}\footnotemark\g@addto@macro\lastfootnote{\\[\footnotesep]\refstepcounter{footnote}\mbox{}\hspace*{3mm}\textsuperscript{\thefootnote}~##1}} +% We need to mess with footnotes in appendiz only if it is in a +% different mode (twocol vs onecol) than the main text +\def\mess@with@appendix@footnotes{ +\BeforeBegin{appendix}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\BeforeEnd{appendix}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\AfterEnd{appendix}{\let\footnote=\orig@footnote} +} +\if@two@col + \if@two@col@app\else + \mess@with@appendix@footnotes + \fi +% \else % Something is broken for pathological case of 2col appendix in +% % a 1col paper, so comment this out +% \if@two@col@app +% \mess@with@appendix@footnotes +% \fi +\fi + +\BeforeBegin{references}{\spit@out@footnotes\let\spit@out@footnotes\relax} +\BeforeBegin{thebibliography}{\spit@out@footnotes\let\spit@out@footnotes\relax} +% in case \lastpagefootnotes were given inside \begin{appendix}\end{appendix}, +\AfterEnd{references}{\let\footnote=\orig@footnote} +\AfterEnd{thebibliography}{\let\footnote=\orig@footnote} +} +\let\lastpagefootnote=\lastpagefootnotes + +\if@revtex@four@one@\else +% this command is copied from the original revtex, but adds space above +% footnote (if any) above the references. +\@namedef{balance@2}{% + \expandafter\balance@two\csname col@1\endcsname\@outputbox + % Avoid a bug by preventing a restore when leaving this group + \global\setbox\csname col@1\endcsname\box\csname col@1\endcsname + \@ifvoid\footbox{}{% + \global\setbox\footbox\vbox{% + \setbox\z@\box\@tempboxa + \let\recover@footins\relax + \balance@two\footbox\@tempboxa + \vskip\skip\footins + \hb@xt@\textwidth{\box\footbox\hfil\box\@tempboxa}% + }% + }% +}% +\fi + +\skip\footins 4.5mm plus 1mm minus 1mm +\footnotesep 0pt +\let\footnoterule\relax + +\def\@makefntext#1{\mbox{}\hspace*{3mm}\@makefnmark~#1} + +\def\notetoeditor#1{}% % We do not need notes to editor in the preprint +\def\placetable#1{}% % We do not need notes to editor in the preprint +\def\placefigure#1{}% % We do not need notes to editor in the preprint + +% **************************************** +% * SECTIONS * +% **************************************** + +\setcounter{secnumdepth}{3} + +\newif\if@firstsection \@firstsectiontrue + +\def\section{% + \if@firstsection\@firstsectionfalse + \maketitle\setcounter{footnote}{\thefront@matter@foot@note}% + \let\footnotetext=\old@foot@note@text + \let\footnotemark=\old@foot@note@mark + \fi + \@startsection{section}{1}{\z@}{9pt plus 2pt minus 1pt}{4pt}{\apjsecfont\center}} + +\def\subsection{\@startsection{subsection}{2}{\z@}{9pt plus 1pt minus 1pt}{4pt}% + {\normalsize\itshape \center}} + +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {2ex plus 1ex minus .2ex}{1ex plus .2ex}{\small\itshape \center}} + +\def\paragraph{\@startsection{paragraph}{4}{\z@}% + {1.5ex plus 1ex minus .2ex}{-0.5\parindent}{\small\it}} + +\def\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {1ex plus 1ex minus .2ex}{-0.5\parindent}{\small\it}} + +\def\thesection{\@arabic{\c@section}} +\def\thesubsection{\thesection.\@arabic{\c@subsection}} +\def\thesubsubsection{\thesubsection.\@arabic{\c@subsubsection}} +\def\theparagraph{\thesubsubsection.\@arabic{\c@paragraph}} +\def\p@section {} +\def\p@subsection {} +\def\p@subsubsection {} +\def\p@paragraph {} +\def\p@subparagraph {} + + +\def\sec@upcase#1{\uppercase{#1}} +\def\subsec@upcase#1{\relax{#1}} + +% +% How the section number will appear in the section title - AV +\def\ApjSectionMarkInTitle#1{#1.\ } +\def\ApjSectionpenalty{0} + +\def\@sect#1#2#3#4#5#6[#7]#8% +{\@tempskipa #5\relax + \ifdim \@tempskipa >\z@ \begingroup + #6\relax + \ifnum #2>\c@secnumdepth \def \@svsec {}\else + \refstepcounter{#1} \edef \@svsec {\ApjSectionMarkInTitle + {\csname the#1\endcsname}}\fi + \@hangfrom {\hskip #3\relax + \ifnum #2=1{\secnum@size {\rm\@svsec~}}% + \else {\subsecnum@size {\rm\@svsec~}}\fi }% + {\interlinepenalty \@M + \ifnum #2=1\sec@upcase{#8}% + \else \subsec@upcase{#8}\fi\par}\endgroup + \csname #1mark\endcsname {#7}\addcontentsline{toc}{#1}% + {\ifnum #2>\c@secnumdepth \else \protect \numberline + {\csname the#1\endcsname }\fi #7}% + \else + \ifnum #2>\c@secnumdepth \def \@svsec {}\else + \refstepcounter{#1} \edef \@svsec {\ApjSectionMarkInTitle + {\csname the#1\endcsname}}\fi + \def \@svsechd {#6\hskip #3% + \ifnum #2=1{\secnum@size{\rm\@svsec~}}\else{\subsecnum@size{\rm\@svsec~}}\fi% + \ifnum #2=1\sec@upcase{#8}\else\subsec@upcase{#8}\fi% + \ifnum #2=4\hskip 0.4ex{\rm ---}\fi% + \csname #1mark\endcsname {#7}\addcontentsline{toc}{#1}% + {\ifnum #2>\c@secnumdepth \else \protect \numberline {\csname + the#1\endcsname }\fi #7}}\fi \@xsect {#5} \penalty \ApjSectionpenalty +%-refstepcounter is now within a group. So \@currentlabel, which is normally +%-set by \refstepcounter is hidden within a group. Need to set it manually. +\protected@edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname} +} + + +\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M + \sec@upcase{#5}\par}\endgroup + \else \def\@svsechd{#4\hskip #1\relax \sec@upcase{#5}}\fi + \@xsect{#3} +% MM: +\penalty \ApjSectionpenalty} + + +\def\acknowledgments{\vskip 5.8mm plus 1mm minus 1mm} +\let\acknowledgements=\acknowledgments % second spelling + + +% **************************************** +% * APPENDIX * +% **************************************** + +\newcounter{remember@figure@num} +\newcounter{remember@table@num} + +\renewenvironment{appendix}[0]{ + \vspace*{0pt plus 20pt minus 5pt} % otherwise revtex4-1 sometimes eats +% away the last line before appendix + \if@two@col + \if@two@col@app\else + \onecolumngrid + \fi + % \else% Something is broken for pathological case of 2col appendix in + % % a 1col paper, so comment this out + % \if@two@col@app + % \set@column@hsize{2}\twocolumngrid + % \fi + \fi + \vskip 10pt plus 2pt minus 1pt + \noindent\mbox{}\hfill{\apjsecfont APPENDIX}\hfill\mbox{}\par + \nopagebreak\medskip\@nobreaktrue\def\ApjSectionpenalty{\@M} + \@firstsectionfalse + \setcounter{section}{0} + \setcounter{subsection}{0} + \setcounter{equation}{0} + \setcounter{remember@figure@num}{\c@figure} + \setcounter{remember@table@num}{\c@table} +% \def\fnum@figure{Figure \Alph{section}\thefigure:} +% \def\fnum@table{Table \Alph{section}\thetable:} + \def\thesection{\Alph{section}} + \def\theequation{\hbox{\Alph{section}\arabic{equation}}} + + \if@number@appendix@floats + \setcounter{figure}{0} + \setcounter{table}{0} + \def\thefigure{\thesection\@arabic\c@figure} + \def\thetable{\thesection\@arabic\c@table} + \fi +% +% Do not use appendix numbers in the titles + \def\ApjSectionMarkInTitle{\AppendixApjSectionMarkInTitle} + \def\section{\setcounter{equation}{0}\if@number@appendix@floats\setcounter{figure}{0}\setcounter{table}{0}\fi\@startsection {section}{1}{\z@} + {10pt}{5pt}{\centering\scshape\apjsecfont}} +% +% + }{% + \if@number@appendix@floats + \setcounter{figure}{\c@remember@figure@num}% + \setcounter{table}{\c@remember@table@num}% + \fi + } + + + +% **************************************** +% * BIBLIOGRAPHY * +% **************************************** + +\renewenvironment{references}[0]{ + \onecolumngrid + \par + \vspace{10pt plus 3pt} + \noindent \makebox[\textwidth][c]{\small\scshape REFERENCES} + \par + \vspace*{4pt plus 3pt} + \set@column@hsize{2}\twocolumngrid + \parindent=0cm \parskip=0cm + \def\baselinestretch{1.0} + \footnotesize \baselineskip=\baselinestretch\bibbaselineskip plus 1pt + minus 1pt \interlinepenalty \@M + \hyphenpenalty=10000 + \frenchspacing % AV - to get right spacing after ``et al.'' + \def\refpar{\par\hangindent=1.2em\hangafter=1}} +{ + \onecolumngrid +} + +% redefine thebibliography +% redefine thebibliography + +% remove numbers from the reference list +\def\@biblabel#1{\relax} + +\newdimen\bibindent +\renewenvironment{thebibliography}[1]{ + \if@chicago \onecolumngrid \else \twocolumngrid \fi + \par + \raggedright + \vspace{10pt plus 3pt} + \if@chicago + \noindent \makebox[\textwidth][c]{\footnotesize REFERENCES} + \else + \centerline{\normalsize REFERENCES} + \fi + \par + \if@chicago + \vspace*{4pt plus 3pt} + \set@column@hsize{2} + \twocolumngrid + \fi + \list{}% + { + \parindent=0pt \parskip=0pt \parsep=0pt % AV + \bibindent=0pt % + \def\baselinestretch{1.0} + \footnotesize \baselineskip=\bibbaselineskip \interlinepenalty \@M % AV + \frenchspacing % AV - to get right spacing after ``et al.'' + \hyphenpenalty=10000 + \itemindent=-1.0em % + \itemsep=0pt % + \listparindent=0pt % + \settowidth\labelwidth{0pt} % + \labelsep=0pt % + \leftmargin=1.0em + \advance\leftmargin\labelsep +%%% \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\relax}}% + \sloppy\clubpenalty4000\widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist + \onecolumngrid % to balance references + \if@two@col \twocolumngrid \fi + } + +% %% AV: + +\def\reference{\@ifnextchar\bgroup {\@reference} + {\@latexerr{Missing key on reference command} + {Each reference command should have a key corresponding to a markcite somewhere in the text}}} +\def\@reference#1{\refpar} + +%% subtitle header and journal info: +\def\submitted#1{\gdef\@submitted{#1}} +\def\journalinfo#1{\gdef\@journalinfo{#1}} +\def\subtitle{ + \vspace*{-12mm} + \noindent + {\scriptsize {\sc \@journalinfo} \\ + Preprint typeset using \LaTeX\ style openjournal v.\ \openjournaltemplate@ver} +} +\let\slugcomment\submitted % slugcomment == submitted +\submitted{Version \today} +\journalinfo{\@submitted} + +%%%%%%%%%%%% +% End-of-document text +%%%%%%%%%%%% + +\AtEndDocument{ +\begin{bottompar} +This paper was built using the Open Journal of Astrophysics \LaTeX\ template. The OJA is a journal which provides fast and easy peer review for new papers in the \texttt{astro-ph} section of the arXiv, making the reviewing process simpler for authors and referees alike. Learn more at \url{http://astro.theoj.org}. +\end{bottompar} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Equations % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% EQNARRAY with reduced spacing around tab characters - AV +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \setlength{\arraycolsep}{0.25\arraycolsep} + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \tw@\arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr + } + +% **************************************** +% * TABLES AND FIGURES * +% **************************************** + + + +\def\@arstrut@hline@clnc{0.5\p@}% % Klootch: magic number + +\setcounter{topnumber}{7} + +\setlength{\belowcaptionskip}{0pt} +\setlength{\abovecaptionskip}{5pt} + +\setlength{\textfloatsep}{-\baselinestretch\baselineskip} +\setlength{\dbltextfloatsep}{-\baselinestretch\baselineskip} +\if@apj@letter + \addtolength{\textfloatsep}{5mm plus 10mm minus 10mm} + \addtolength{\dbltextfloatsep}{5mm plus 10mm minus 10mm} +\else + \addtolength{\textfloatsep}{7mm plus 10mm minus 10mm} + \addtolength{\dbltextfloatsep}{7mm plus 10mm minus 10mm} +\fi + +\renewcommand{\topfraction}{1.0} +\renewcommand{\bottomfraction}{1.0} +\renewcommand{\textfraction}{0.0} +\renewcommand{\dbltopfraction}{0.85} +\renewcommand{\dblfloatpagefraction}{0.85} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} + +% Copied from revtex4.cls; without it, captions are centered +\def\@xfloat@prep{% + \let\footnote\footnote@latex + \def\@mpfn{mpfootnote}% + \def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@footnotetext\@mpfootnotetext + \let\H@@footnotetext\@mpfootnotetext + \let\@makefntext\@mpmakefntext +}% + +\long\def\@makecaption#1#2{% + \noindent\begin{minipage}{0.9999\linewidth} %% \noindent is needed because + %% otherwise minipage + parindent does not fit into the line and spurious + %% vertical skip appear after caption + \if\csname ftype@\@captype\endcsname 2 + \vskip 2ex\noindent \centering\@table@type@size{\@eapj@cap@font #1}\par + \if@chicago\@eapj@cap@font\fi #2\par\medskip + \else + \vspace*{\abovecaptionskip}\noindent\footnotesize #1 #2\par\vskip \belowcaptionskip + \fi + \end{minipage}\par + } + + + +%%%%%%%%%%%% FIX \cutinhead +\def\@ptabularcr{\\} +\newcommand\cutinhead[1]{% + \noalign{\vskip 1.5ex}% + \hline + \@ptabularcr + \noalign{\vskip -1.5ex}% + \multicolumn{\LT@cols}{c}{#1}% + \@ptabularcr + \noalign{\vskip .8ex}% + \hline + \@ptabularcr + \noalign{\vskip -2ex}% +}% + +\newcommand\sidehead[1]{% + \noalign{\vskip 1.5ex}% +% \hline +% \@ptabularcr +% \noalign{\vskip -1.5ex}% + \multicolumn{\LT@cols}{l}{#1}% + \@ptabularcr + \noalign{\vskip .8ex}% +% \hline +% \@ptabularcr +% \noalign{\vskip -2ex}% +}% + + +\newcommand\figcaption{\@testopt{\@xfigcaption}{}}% +%% suggested by Joern Wilms +\def\@figcaption#1{{\def\@captype{figure}\caption{\footnotesize #1}}} +\def\@xfigcaption[#1]#2{{\def\@captype{figure}\caption{\footnotesize #2}}} + +\def\thefigure{\@arabic\c@figure} +\def\fnum@figure{{\footnotesize{\@eapj@cap@font\if@chicago~~\fi\mbox{\@eapj@figname~\thefigure.}\if@chicago---\else~\fi}}} + +\def\thetable{\@arabic\c@table} +%%% Table captions without making a floating table +\def\tabcaption{\@ifnextchar[{\@xtabcaption}{\@tabcaption}} +\def\@tabcaption#1{{\def\@captype{table}\caption{#1}}} +\def\@xtabcaption[#1]#2{{\def\@captype{table}\caption{#2}}} +\def\fnum@table{{\@eapj@cap@font \@eapj@tabname~\thetable}} +% \let\fnum@ptable=\fnum@table +% \def\fnum@ptablecont{{\centering{\scshape Table~\thetable}---{\itshape +% Continued}}}% +% \long\def\@make@caption@text#1#2{% +% {\small\centering#1{\scshape #2}\par\vskip1.4ex} +% }% +\long\def\@makecaption@plano@cont#1#2{% + {\small \centering#1\par}\vskip1.4ex\relax +}% + + +%% Commands from aastex.cls: +\newcommand\dataset{\@testopt\@dataset{[}}% +\def\@dataset[#1]#2{#2}% +\newcommand\facility{\@testopt\@facility{[}}% +\def\@facility[#1]#2{#2}% +\newcommand\object{\@testopt\@object{[}}% +\def\@object[#1]#2{#2}% +\newcommand\objectname{\@testopt\@objectname{[]}}% +\def\@objectname[#1]#2{#2}% +\newlength{\plot@width} +\def\eps@scaling{1.0}% +\newcommand\epsscale[1]{\def\eps@scaling{#1}}% +\newcommand\plotone[1]{% + \centering + \leavevmode + \setlength{\plot@width}{0.85\linewidth} + \includegraphics[width={\eps@scaling\plot@width}]{#1}% +}% +\newcommand\plottwo[2]{% + \centering + \leavevmode + \setlength{\plot@width}{0.425\linewidth} + \includegraphics[width={\eps@scaling\plot@width}]{#1}% + \hfil + \includegraphics[width={\eps@scaling\plot@width}]{#2}% +}% +\newcommand\plotfiddle[7]{% + \centering + \leavevmode + \vbox\@to#2{\rule{\z@}{#2}}% + \includegraphics[% + scale=#4, + angle=#3, + origin=c + ]{#1}% +}% +\newcommand\figurenum[1]{% + \def\thefigure{#1}% + \let\@currentlabel\thefigure + \addtocounter{figure}{\m@ne}% +}% + +\newcommand\phn{\phantom{0}}% +\newcommand\phd{\phantom{.}}% +\newcommand\phs{\phantom{$-$}}% +\newcommand\phm[1]{\phantom{#1}}% +\let\la=\lesssim % For Springer A&A compliance... +\let\ga=\gtrsim +\newcommand\sq{\mbox{\rlap{$\sqcap$}$\sqcup$}}% +\newcommand\arcdeg{\mbox{$^\circ$}}% +\newcommand\arcmin{\mbox{$^\prime$}}% +\newcommand\arcsec{\mbox{$^{\prime\prime}$}}% +\newcommand\fd{\mbox{$.\!\!^{\mathrm d}$}}% +\newcommand\fh{\mbox{$.\!\!^{\mathrm h}$}}% +\newcommand\fm{\mbox{$.\!\!^{\mathrm m}$}}% +\newcommand\fs{\mbox{$.\!\!^{\mathrm s}$}}% +\newcommand\fdg{\mbox{$.\!\!^\circ$}}% +\newcommand\farcm@mss{\mbox{$.\mkern-4mu^\prime$}}% +\let\farcm\farcm@mss +\newcommand\farcs@mss{\mbox{$.\!\!^{\prime\prime}$}}% +\let\farcs\farcs@mss +\newcommand\fp{\mbox{$.\!\!^{\scriptscriptstyle\mathrm p}$}}% +\newcommand\micron{\mbox{$\mu$m}}% +\def\farcm@apj{% + \mbox{.\kern -0.7ex\raisebox{.9ex}{\scriptsize$\prime$}}% +}% +\def\farcs@apj{% + \mbox{% + \kern 0.13ex.% + \kern -0.95ex\raisebox{.9ex}{\scriptsize$\prime\prime$}% + \kern -0.1ex% + }% +}% + + +\newcommand\ion[2]{#1$\;${% +\ifx\@currsize\normalsize\small \else +\ifx\@currsize\small\footnotesize \else +\ifx\@currsize\footnotesize\scriptsize \else +\ifx\@currsize\scriptsize\tiny \else +\ifx\@currsize\large\normalsize \else +\ifx\@currsize\Large\large +\fi\fi\fi\fi\fi\fi +\rmfamily\@Roman{#2}}\relax}% + +\renewcommand\case[2]{\mbox{$\frac{#1}{#2}$}}% +\renewcommand\slantfrac{\case}% +\newcommand\onehalf{\slantfrac{1}{2}}% +\newcommand\onethird{\slantfrac{1}{3}}% +\newcommand\twothirds{\slantfrac{2}{3}}% +\newcommand\onequarter{\slantfrac{1}{4}}% +\newcommand\threequarters{\slantfrac{3}{4}}% +\newcommand\ubvr{\mbox{$U\!BV\!R$}}%% UBVR system +\newcommand\ub{\mbox{$U\!-\!B$}}% % U-B +\newcommand\bv{\mbox{$B\!-\!V$}}% % B-V +\renewcommand\vr{\mbox{$V\!-\!R$}}% % V-R +\newcommand\ur{\mbox{$U\!-\!R$}}% % U-R +\newcommand\nodata{ ~$\cdots$~ }% +\newcommand\diameter{\ooalign{\hfil/\hfil\crcr\mathhexbox20D}}% +\newcommand\degr{\arcdeg}% +\newcommand\Sun{\sun}% +\newcommand\Sol{\sun}% +\newcommand\sun{\odot}% +\newcommand\Mercury{\astro{\char1}}% Mercury symbol, "1" +\newcommand\Venus{\astro{\char2}}% Venus symbol, "2" +\newcommand\Earth{\earth}% +\newcommand\Terra{\earth}% +\newcommand\earth{\oplus}% +\newcommand\Mars{\astro{\char4}}% Mars symbol, "4" +\newcommand\Jupiter{\astro{\char5}}% Jupiter symbol, "5" +\newcommand\Saturn{\astro{\char6}}% Saturn symbol, "6" +\newcommand\Uranus{\astro{\char7}}% Uranus symbol, "7" +\newcommand\Neptune{\astro{\char8}}% Neptune symbol, "8" +\newcommand\Pluto{\astro{\char9}}% Pluo symbol, "9" +\newcommand\Moon{\astro{\char10}}% Moon symbol, "M" +\newcommand\Luna{\Moon}% +\newcommand\Aries{\astro{\char11}}% +\newcommand\VEq{\Aries}% vernal equinox (Aries) +\newcommand\Taurus{\astro{\char12}}% +\newcommand\Gemini{\astro{\char13}}% +\newcommand\Cancer{\astro{\char14}}% +\newcommand\Leo{\astro{\char15}}% +\newcommand\Virgo{\astro{\char16}}% +\newcommand\Libra{\astro{\char17}}% +\newcommand\AEq{\Libra}% autumnal equinox (Libra) +\newcommand\Scorpius{\astro{\char18}}% +\newcommand\Sagittarius{\astro{\char19}}% +\newcommand\Capricornus{\astro{\char20}}% +\newcommand\Aquarius{\astro{\char21}}% +\newcommand\Pisces{\astro{\char22}}% + +\newcommand\sbond{\chem@bnd{\@sbnd}}% +\newcommand\dbond{\chem@bnd{\@dbnd}}% +\newcommand\tbond{\chem@bnd{\@tbnd}}% +\def\chem@bnd#1{% + {% + \kern.1em\relax + \setbox\z@\hbox{M}% + \dimen@ii.8em\relax + \p@=.1em\relax + \dimen@.5\ht\z@\dimen@i-\dimen@ + \advance\dimen@1.5\p@\advance\dimen@i-1.0\p@ + #1% + \kern.1em\relax + }% + }% +\def\@sbnd{% + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@dbnd{% + \advance\dimen@-0.5\p@\advance\dimen@i0.5\p@ + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% +\def\@tbnd{% + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + \advance\dimen@-1.5\p@\advance\dimen@i1.5\p@ + \hskip-\dimen@ii + \vrule\@height\dimen@\@depth\dimen@i\@width\dimen@ii\nobreak + }% + +\newcommand\anchor[2]{#2}% +\renewcommand\url{\@dblarg\@url}% +\def\@url[#1]{\anchor{#1}}% + +\let\jnl@style=\rmfamily +\def\ref@jnl#1{{\jnl@style#1}}% +\newcommand\aj{\ref@jnl{AJ}}% % Astronomical Journal +\newcommand\araa{\ref@jnl{ARA\&A}}% % Annual Review of Astron and Astrophys +\renewcommand\apj{\ref@jnl{ApJ}}% % Astrophysical Journal +\newcommand\apjl{\ref@jnl{\@eapj@ApJLetters}}% % Astrophysical Journal, Letters +\newcommand\apjs{\ref@jnl{ApJS}}% % Astrophysical Journal, Supplement +\renewcommand\ao{\ref@jnl{Appl.~Opt.}}% % Applied Optics +\newcommand\apss{\ref@jnl{Ap\&SS}}% % Astrophysics and Space Science +\newcommand\aap{\ref@jnl{A\&A}}% % Astronomy and Astrophysics +\newcommand\aapr{\ref@jnl{A\&A~Rev.}}% % Astronomy and Astrophysics Reviews +\newcommand\aaps{\ref@jnl{A\&AS}}% % Astronomy and Astrophysics, Supplement +\newcommand\azh{\ref@jnl{AZh}}% % Astronomicheskii Zhurnal +\newcommand\baas{\ref@jnl{BAAS}}% % Bulletin of the AAS +\newcommand\icarus{\ref@jnl{Icarus}}% % Icarus +\newcommand\jrasc{\ref@jnl{JRASC}}% % Journal of the RAS of Canada +\newcommand\memras{\ref@jnl{MmRAS}}% % Memoirs of the RAS +\newcommand\mnras{\ref@jnl{MNRAS}}% % Monthly Notices of the RAS +\renewcommand\pra{\ref@jnl{Phys.~Rev.~A}}% % Physical Review A: General Physics +\renewcommand\prb{\ref@jnl{Phys.~Rev.~B}}% % Physical Review B: Solid State +\renewcommand\prc{\ref@jnl{Phys.~Rev.~C}}% % Physical Review C +\renewcommand\prd{\ref@jnl{Phys.~Rev.~D}}% % Physical Review D +\renewcommand\pre{\ref@jnl{Phys.~Rev.~E}}% % Physical Review E +\renewcommand\prl{\ref@jnl{Phys.~Rev.~Lett.}}% % Physical Review Letters +\newcommand\pasp{\ref@jnl{PASP}}% % Publications of the ASP +\newcommand\pasj{\ref@jnl{PASJ}}% % Publications of the ASJ +\newcommand\qjras{\ref@jnl{QJRAS}}% % Quarterly Journal of the RAS +\newcommand\skytel{\ref@jnl{S\&T}}% % Sky and Telescope +\newcommand\solphys{\ref@jnl{Sol.~Phys.}}% % Solar Physics +\newcommand\sovast{\ref@jnl{Soviet~Ast.}}% % Soviet Astronomy +\newcommand\ssr{\ref@jnl{Space~Sci.~Rev.}}% % Space Science Reviews +\newcommand\zap{\ref@jnl{ZAp}}% % Zeitschrift fuer Astrophysik +\renewcommand\nat{\ref@jnl{Nature}}% % Nature +\newcommand\iaucirc{\ref@jnl{IAU~Circ.}}% % IAU Cirulars +\newcommand\aplett{\ref@jnl{Astrophys.~Lett.}}% % Astrophysics Letters +\newcommand\apspr{\ref@jnl{Astrophys.~Space~Phys.~Res.}}% % Astrophysics Space Physics Research +\newcommand\bain{\ref@jnl{Bull.~Astron.~Inst.~Netherlands}}% % Bulletin Astronomical Institute of the Netherlands +\newcommand\fcp{\ref@jnl{Fund.~Cosmic~Phys.}}% % Fundamental Cosmic Physics +\newcommand\gca{\ref@jnl{Geochim.~Cosmochim.~Acta}}% % Geochimica Cosmochimica Acta +\newcommand\grl{\ref@jnl{Geophys.~Res.~Lett.}}% % Geophysics Research Letters +\renewcommand\jcp{\ref@jnl{J.~Chem.~Phys.}}% % Journal of Chemical Physics +\newcommand\jgr{\ref@jnl{J.~Geophys.~Res.}}% % Journal of Geophysics Research +\newcommand\jqsrt{\ref@jnl{J.~Quant.~Spec.~Radiat.~Transf.}}% % Journal of Quantitiative Spectroscopy and Radiative Trasfer +\newcommand\memsai{\ref@jnl{Mem.~Soc.~Astron.~Italiana}}% % Mem. Societa Astronomica Italiana +\newcommand\nphysa{\ref@jnl{Nucl.~Phys.~A}}% % Nuclear Physics A +\newcommand\physrep{\ref@jnl{Phys.~Rep.}}% % Physics Reports +\newcommand\physscr{\ref@jnl{Phys.~Scr}}% % Physica Scripta +\newcommand\planss{\ref@jnl{Planet.~Space~Sci.}}% % Planetary Space Science +\newcommand\procspie{\ref@jnl{Proc.~SPIE}}% % Proceedings of the SPIE + +\newcommand\actaa{\ref@jnl{Acta Astron.}}% % Acta Astronomica +\newcommand\caa{\ref@jnl{Chinese Astron. Astrophys.}}% % Chinese Astronomy and Astrophysics +\newcommand\cjaa{\ref@jnl{Chinese J. Astron. Astrophys.}}% % Chinese Journal of Astronomy and Astrophysics +\newcommand\jcap{\ref@jnl{J. Cosmology Astropart. Phys.}}% % Journal of Cosmology and Astroparticle Physics +\newcommand\na{\ref@jnl{New A}}% % New Astronomy +\newcommand\nar{\ref@jnl{New A Rev.}}% % New Astronomy Review +\newcommand\pasa{\ref@jnl{PASA}}% % Publications of the Astron. Soc. of Australia +\newcommand\rmxaa{\ref@jnl{Rev. Mexicana Astron. Astrofis.}}% % Revista Mexicana de Astronomia y Astrofisica + + +\let\astap=\aap +\let\apjlett=\apjl +\let\apjsupp=\apjs +\let\applopt=\ao + +\renewcommand\nodata{ ~$\cdots$~ }% +\newcommand\ulap[1]{\vbox\@to\z@{{\vss#1}}}% +\newcommand\dlap[1]{\vbox\@to\z@{{#1\vss}}}% + + +% Implementation of deluxetables via the longtable package + + +\newcounter{table@save} +\def\save@label#1{ + \if@filesw\immediate\write\@auxout{% + \string\newlabel{#1}{{\@currentlabel}{\thepage}}}% + \fi% +} + +\def\tablenum#1{% + \setcounter{table@save}{\the\c@table} + \gdef\use@tablenum{1} + \setcounter{table}{#1}\def\thetable{#1}\def\@currentlabel{#1} + \def\label##1{\save@label{##1}} +}% +\gdef\use@tablenum{0} +\def\restore@tablenum{\if\use@tablenum0\else\setcounter{table}{\the\c@table@save}\addtocounter{table}{\m@ne}\gdef\use@tablenum{0}\fi} + + +\def\tabletypesize#1{\def\table@hook{#1}\gdef\@table@type@size{#1}} +\tabletypesize{\footnotesize} +\let\tablefontsize=\tabletypesize % for compatibility with old documents + +\gdef\@tablecaption{} +\def\tablecaption#1{\gdef\@tablecaption{\if@chicago \@eapj@cap@font \fi #1}} + +\def\LT@endpbox{% + \@finalstrut\@arstrutbox + \egroup + \the\LT@p@ftn + \global\LT@p@ftn{}% + \hfil} + +\def\LT@makecaption#1#2#3{% + \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{% +% \sbox\@tempboxa{#2.~~#3}% + % \ifdim\wd\@tempboxa>\hsize + \centering + #2~~#3% +% \else +% \hbox to\hsize{\hfil\box\@tempboxa\hfil}% +% \fi + \endgraf\vskip\baselineskip}% + \hss}}} +\let\LT@makecaption@rtx=\LT@makecaption % to fight redefinition in Revtex-4.1 + +\global\let\tablenotemark\relax +\global\def\tablenotemark#1{{\normalfont\textsuperscript{#1}}} +\global\let\tablenotetext\relax +\global\def\tablenotetext#1#2{\footnotetext[#1]{\@table@type@size#2}} + + +\newif\if@table@not@headed + +\def\startdata{\if@table@not@headed\kill\caption{\\% + \@tablecaption}\endhead\hline\endfoot% + \fi% +} + +\def\tablehead#1{ + \@table@not@headedfalse% + \kill + \caption{\\% + \@tablecaption}% + \\ + \hline + \hline\\[-1.7ex] + #1\hskip\tabcolsep\\[.7ex] + \hline\\[-1.5ex] + \endfirsthead + \caption[]{--- \emph{Continued}}\\ + \hline + \hline\\[-1.7ex] + #1\hskip\tabcolsep\\[.7ex] + \hline\\[-1.5ex] + \endhead + \hline + \endfoot% +} + +\newlength{\table@note@skip} +\setlength{\table@note@skip}{0.5ex} +\newlength{\deluxe@table@width} +\newlength{\@d@t@a} +\newcounter{deluxe@table@num} + +\def\colhead#1{\multicolumn{1}{c}{#1}} + + +\def\tablewidth#1{% + \ifdim#1=\z@ + \else + \gdef\@d@t@@flag{1} + \if@filesw\immediate\write\@auxout{% + \gdef\expandafter\noexpand + \csname deluxe@table@width@\romannumeral\c@LT@tables\endcsname + {#1}} + \fi + \fi +} + + +\def\save@natural@width{% + \ifnum\@d@t@@flag=0 + \setlength{\@d@t@a}{0pt}% + \let\@d@t@b=\LT@entry% + \def\LT@entry##1##2{\addtolength{\@d@t@a}{##2}% + }% + \expandafter\csname LT@\romannumeral\c@deluxe@table@num\endcsname + \setlength{\@d@t@a}{-\@d@t@a} + \tablewidth{\the\@d@t@a} + \def\LT@entry{\@d@t@b} + \fi +} + +\def\lt@expand@linewidth@one{\setlength\LTleft{0pt}\setlength\LTright{0pt}} +\def\lt@expand@linewidth@two{@{\extracolsep{0pt plus 1filll}}} +\def\find@table@width{% +%%% set table width using aux file and command \tablewidth + \setcounter{deluxe@table@num}{\c@LT@tables} + \refstepcounter{deluxe@table@num} + \expandafter\ifx\csname deluxe@table@width@\romannumeral\c@deluxe@table@num\endcsname\relax + \def\@d@t@{0.999\linewidth} + \else + \edef\@d@t@{\expandafter\csname deluxe@table@width@\romannumeral\c@deluxe@table@num\endcsname} + \fi + \ifdim\@d@t@<\z@% then natural width is used + \setlength{\deluxe@table@width}{-\@d@t@} + \setlength{\LTcapwidth}{-\@d@t@} + \def\lt@expand@linewidth{\relax} + \def\lt@expand@linewidth@{} + \else% we will enclose table in the minipage of the given width and make + % longtable to span the full minipage width + \ifdim\@d@t@>\z@\else\def\@d@t@{0.999\linewidth}\fi + \setlength{\deluxe@table@width}{\@d@t@} + \setlength{\LTcapwidth}{\@d@t@} + \def\lt@expand@linewidth{\lt@expand@linewidth@one} + \def\lt@expand@linewidth@{\lt@expand@linewidth@two} + \fi +} + +\newlength{\abovedeluxetableskip} +\newlength{\belowdeluxetableskip} +\setlength{\abovedeluxetableskip}{0pt} +\setlength{\belowdeluxetableskip}{0pt} +\setlength{\tabcolsep}{5pt} + +\setlength\doublerulesep{1.5pt} +\newdimen\lastrowheight +\def\set@last@row@height{\setlength{\lastrowheight}{\ht\strutbox}\addtolength{\lastrowheight}{\dp\strutbox}\setlength{\lastrowheight}{-\arraystretch\lastrowheight}} + +\let\tableline=\hline % Revtex said: Command \tableline is obsolete; Use \colrule instead.. + +\newtoks\DT@p@ftn +\global\def\tablenotetext@DT#1#2{ +% \edef\@tempa{\the\DT@p@ftn\noexpand\footnotetext[#1]} + \edef\@tempa{\the\DT@p@ftn\noexpand\tablenotemark{#1}~} + \global\DT@p@ftn\expandafter{\@tempa{\@table@type@size#2}\par}}% + + +\newenvironment{deluxetable}[1]{ + \lineskiplimit=\z@ % restore default setting + \def\tablenotetext{\tablenotetext@DT} + \gdef\tblnote@list{} + \gdef\tblref@list{} + \DT@p@ftn{}% + \set@last@row@height\edef\lastrowheight@{\the\lastrowheight} + \renewcommand\tablecomments[1]{\gdef\tblnote@list{\@tablecom{##1}}}% + \renewcommand\tablerefs[1]{\gdef\tblref@list{\@tableref{##1}}}% + \@table@not@headedtrue + \begin{table} + \vspace*{\abovedeluxetableskip} + \gdef\@d@t@@flag{0} + \def\nl{\\} +% \def\tabcolsep{5pt} + \let\caption=\LT@caption + \find@table@width + \centering + \begin{minipage}{\deluxe@table@width} + \lt@expand@linewidth + \def\@tmpa{\begin{longtable}} + \expandafter\expandafter\expandafter\@tmpa% + \expandafter\expandafter\expandafter{\lt@expand@linewidth@#1} +% \begin{longtable}{\lt@expand@linewidth@#1} + }{ + \restore@tablenum% + \end{longtable}% + \save@natural@width + \@spew@tblnotes\end{minipage} + \vspace*{\belowdeluxetableskip} + \end{table} +} + + +\newenvironment{deluxetable*}[1]{ + \lineskiplimit=\z@ % restore default setting + \def\tablenotetext{\tablenotetext@DT} + \gdef\tblnote@list{} + \gdef\tblref@list{} + \DT@p@ftn{}% + \set@last@row@height\edef\lastrowheight@{\the\lastrowheight} + \renewcommand\tablecomments[1]{\gdef\tblnote@list{\@tablecom{##1}}}% + \renewcommand\tablerefs[1]{\gdef\tblref@list{\@tableref{##1}}}% + \@table@not@headedtrue + \begin{table*} + \vspace*{\abovedeluxetableskip} + \gdef\@d@t@@flag{0} + \def\nl{\\} +% \def\tabcolsep{5pt} + \let\caption=\LT@caption + \centering + \find@table@width + \begin{minipage}{\deluxe@table@width} + \lt@expand@linewidth + \def\@tmpa{\begin{longtable*}} + \expandafter\expandafter\expandafter\@tmpa% + \expandafter\expandafter\expandafter{\lt@expand@linewidth@#1} + %\begin{longtable*}{\lt@expand@linewidth@#1} + }{\gdef\pt@width{\LTcapwidth}% + \restore@tablenum% + \end{longtable*}% + \save@natural@width + \@spew@tblnotes% + \end{minipage}% + \vspace*{\belowdeluxetableskip} +\end{table*}} + +\def\enddata{\\[\lastrowheight@]\vspace*{1.5mm}} + + +\def\LongTables{ + \renewcommand\tablecomments[1]{\gdef\tblnote@list{\@tablecom{##1}}}% + \renewcommand\tablerefs[1]{\gdef\tblref@list{\@tableref{##1}}}% + \renewenvironment{deluxetable}[1]{ + \def\tablenotetext{\tablenotetext@DT} + \global\DT@p@ftn{}% + \def\nl{\\} +% \def\tabcolsep{5pt} + \let\caption=\LT@caption + \begin{longtable}{##1} + \set@last@row@height\global\edef\lastrowheight@{\the\lastrowheight} + \@table@not@headedtrue + }{\gdef\pt@width{\LTcapwidth}\restore@tablenum + \end{longtable}% + \vspace*{-1.5ex} + \begin{minipage}{0.99\linewidth} + \@spew@tblnotes% + \end{minipage} + } + \renewenvironment{deluxetable*}[1]{ + \def\tablenotetext{\tablenotetext@DT} + \global\DT@p@ftn{}% + %\@table@not@headedtrue % -- wrong per exchange with Giovanni Fossati + \def\nl{\\} +% \def\tabcolsep{5pt} + \let\caption=\LT@caption + \begin{longtable*}{##1} + \set@last@row@height\global\edef\lastrowheight@{\the\lastrowheight} + \@table@not@headedtrue + }{\gdef\pt@width{\LTcapwidth}% + \restore@tablenum% + \end{longtable*}% + \vspace*{-1.5ex} + \begin{minipage}{0.99\linewidth} + \@spew@tblnotes% + \end{minipage} +} +} + +\def\tableheadfrac#1{} +\newcount\pt@column +\newcount\pt@ncol +\newcommand\tablecolumns[1]{% + \pt@column=#1\relax + \pt@ncol=#1\relax + \global\let\pt@addcol\@empty +}% +\def\cutinhead@ppt#1{% + \noalign{\vskip 1.5ex}% + \hline + \@ptabularcr + \noalign{\vskip -2ex}% Style Note: in apj, it is -1.5ex + \multicolumn{\pt@ncol}{c}{#1}% + \\ + \noalign{\vskip .8ex}% + \hline + \\ + \noalign{\vskip -2ex}% +}% +% \newcommand\sidehead[1]{% +% \noalign{\vskip 1.5ex}% +% \multicolumn{\pt@ncol}{@{\hskip\z@}l}{#1}% +% \\ +% \noalign{\vskip .5ex}% +% }% +%\def\startdata{\relax} + +\gdef\tblnote@list{} +\gdef\tblref@list{} +\newcommand\tablecomments[1]{\@tablecom{#1}}% +\newcommand\tablerefs[1]{\@tableref{#1}}% +\def\@tablecom#1{% + \vspace*{\table@note@skip} +\par +{\parbox{\linewidth}{\hskip1em\rmfamily {\@eapj@cap@font Note}. --- #1}\par}% +}% +\def\@tableref#1{% + \vspace*{\table@note@skip} +\par +{\parbox{\linewidth}{\hskip1em\rmfamily {\@eapj@cap@font References}. --- #1}\par}% +}% +\def\spew@tblnotes{% + \@ifx@empty\tblref@list{}{% + \@tablenotes{\tblref@list}% + \vspace*{\table@note@skip}% + \global\let\tblref@list\@empty + }% + \@ifx@empty\tblnote@list{}{% + \@tablenotes{\tblnote@list}% + \vspace*{\table@note@skip}% + \global\let\tblnote@list\@empty + } + \the\DT@p@ftn% +}% +\def\@tablenotes#1{% + \par +% \footnoterule% + {\@table@type@size#1}% +}% + +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Release notes (09/06/15): +%% +%% First version of openjournal, based almost entirely on emulateapj version 01/23/15. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 00000000..bd76297a --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,1401 @@ +@article{breiman2001, + author = {Breiman, Leo}, + doi = {10.1023/A:1010933404324}, + journal = {Machine Learning}, + language = {English}, + number = 1, + pages = {5-32}, + publisher = {Kluwer Academic Publishers}, + timestamp = {2015-04-24T14:37:24.000+0200}, + title = {Random Forests}, + url = {http://dx.doi.org/10.1023/A%3A1010933404324}, + volume = 45, + year = 2001 +} + + +@misc{flax2020github, + author = {Jonathan Heek and Anselm Levskaya and Avital Oliver and Marvin Ritter and Bertrand Rondepierre and Andreas Steiner and Marc van {Z}ee}, + title = {{F}lax: A neural network library and ecosystem for {JAX}}, + url = {http://github.com/google/flax}, + version = {0.3.2}, + year = {2020}, +} + +@article{scikit-learn, + title={Scikit-learn: Machine Learning in {P}ython}, + author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V. + and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P. + and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and + Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.}, + journal={Journal of Machine Learning Research}, + volume={12}, + pages={2825--2830}, + year=2011 +} + + + + +@article{Friedman:2002we, + author = "Friedman, Jerome H.", + title = "{Stochastic gradient boosting}", + journal = "Comput. Stat. Data Anal.", + volume = "38", + year = "2002", + pages = "367-378", + doi = "10.1016/S0167-9473(01)00065-2", + reportNumber = "SLAC-REPRINT-2002-017", + SLACcitation = "%%CITATION = CSDAD,38,367;%%" +} +%bibitem{hastieetal} +@book{RefWorks:1634, + added-at = {2012-12-09T12:44:18.000+0100}, + author = {Hastie, T. and Tibshirani, R. and Friedman, J.}, + biburl = {https://www.bibsonomy.org/bibtex/20cd6d6683b38e7b5a15ee550266b5b9c/jbmere}, + interhash = {39bdf0a76d889fa39deb5d1ac793ff4e}, + intrahash = {0cd6d6683b38e7b5a15ee550266b5b9c}, + keywords = {imported}, + publisher = {Springer, New York}, + timestamp = {2012-12-09T12:44:19.000+0100}, + title = {The Elements of Statistical Learning}, + year = 2009 +} + +See More from Joe Zuntz + + +@ARTICLE{Almosallam2016a, + author = {{Almosallam}, Ibrahim A. and {Lindsay}, Sam N. and {Jarvis}, Matt J. and {Roberts}, Stephen J.}, + title = "{A sparse Gaussian process framework for photometric redshift estimation}", + journal = {\mnras}, + keywords = {methods: data analysis, galaxies: distances and redshifts, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Astrophysics of Galaxies, Computer Science - Computer Vision and Pattern Recognition}, + year = 2016, + month = jan, + volume = {455}, + number = {3}, + pages = {2387-2401}, + doi = {10.1093/mnras/stv2425}, +archivePrefix = {arXiv}, + eprint = {1505.05489}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016MNRAS.455.2387A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Almosallam2016b, + author = {{Almosallam}, Ibrahim A. and {Jarvis}, Matt J. and {Roberts}, Stephen J.}, + title = "{GPZ: non-stationary sparse Gaussian processes for heteroscedastic uncertainty estimation in photometric redshifts}", + journal = {\mnras}, + keywords = {methods: data analysis, galaxies: distances and redshifts, Astrophysics - Instrumentation and Methods for Astrophysics, I.2.6}, + year = 2016, + month = oct, + volume = {462}, + number = {1}, + pages = {726-739}, + doi = {10.1093/mnras/stw1618}, +archivePrefix = {arXiv}, + eprint = {1604.03593}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016MNRAS.462..726A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Gomes2017, + author = {{Gomes}, Zahra and {Jarvis}, Matt J. and {Almosallam}, Ibrahim A. and {Roberts}, Stephen J.}, + title = "{Improving photometric redshift estimation using GPZ: size information, post processing, and improved photometry}", + journal = {\mnras}, + keywords = {methods: data analysis, galaxies: distances and redshifts, galaxies: photometry, Astrophysics - Astrophysics of Galaxies, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = mar, + volume = {475}, + number = {1}, + pages = {331-342}, + doi = {10.1093/mnras/stx3187}, +archivePrefix = {arXiv}, + eprint = {1712.02256}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.475..331G}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Duncan2018, + author = {{Duncan}, Kenneth J. and {Brown}, Michael J.~I. and {Williams}, Wendy L. and {Best}, Philip N. and {Buat}, Veronique and {Burgarella}, Denis and {Jarvis}, Matt J. and {Ma{\l}ek}, Katarzyna and {Oliver}, S.~J. and {R{\"o}ttgering}, Huub J.~A. and {Smith}, Daniel J.~B.}, + title = "{Photometric redshifts for the next generation of deep radio continuum surveys - I. Template fitting}", + journal = {\mnras}, + keywords = {galaxies: active, galaxies: distances and redshifts, radio continuum: galaxies, Astrophysics - Astrophysics of Galaxies}, + year = 2018, + month = jan, + volume = {473}, + number = {2}, + pages = {2655-2672}, + doi = {10.1093/mnras/stx2536}, +archivePrefix = {arXiv}, + eprint = {1709.09183}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.473.2655D}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@article{Peng2019, +author = {Peng, Hao and Bai, Xiaoli}, +year = {2019}, +month = {08}, +pages = {}, +title = {Comparative evaluation of three machine learning algorithms on improving orbit prediction accuracy}, +volume = {3}, +journal = {Astrodynamics}, +doi = {10.1007/s42064-018-0055-4} +} + +@ARTICLE{Hatfield2020, + author = {{Hatfield}, P.~W. and {Almosallam}, I.~A. and {Jarvis}, M.~J. and {Adams}, N. and {Bowler}, R.~A.~A. and {Gomes}, Z. and {Roberts}, S.~J. and {Schreiber}, C.}, + title = "{Augmenting machine learning photometric redshifts with Gaussian mixture models}", + journal = {\mnras}, + keywords = {techniques: photometric, surveys, galaxies: distances and redshifts, Astrophysics - Astrophysics of Galaxies}, + year = 2020, + month = nov, + volume = {498}, + number = {4}, + pages = {5498-5510}, + doi = {10.1093/mnras/staa2741}, +archivePrefix = {arXiv}, + eprint = {2009.01952}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020MNRAS.498.5498H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@book{Rasmussen2006, +author = {Rasmussen, Carl Edward and Williams, Christopher K. I.}, +title = {Gaussian Processes for Machine Learning (Adaptive Computation and Machine Learning)}, +year = {2005}, +isbn = {026218253X}, +publisher = {The MIT Press} +} + +@book{medsker, + title={Recurrent neural networks: design and applications}, + author={Medsker, Larry and Jain, Lakhmi C}, + year={1999}, + publisher={CRC press} +} + +@inproceedings{pascanu, + title={On the difficulty of training recurrent neural networks}, + author={Pascanu, Razvan and Mikolov, Tomas and Bengio, Yoshua}, + booktitle={International conference on machine learning}, + pages={1310--1318}, + year={2013} +} + +@article{schuster, + title={Bidirectional recurrent neural networks}, + author={Schuster, Mike and Paliwal, Kuldip K}, + journal={IEEE transactions on Signal Processing}, + volume={45}, + number={11}, + pages={2673--2681}, + year={1997}, + publisher={Ieee} +} + +@inproceedings{lgbm, + author = {Ke, Guolin and Meng, Qi and Finley, Thomas and Wang, Taifeng and Chen, Wei and Ma, Weidong and Ye, Qiwei and Liu, Tie-Yan}, + booktitle = {Advances in Neural Information Processing Systems}, + editor = {I. Guyon and U. V. Luxburg and S. Bengio and H. Wallach and R. Fergus and S. Vishwanathan and R. Garnett}, + pages = {3146--3154}, + publisher = {Curran Associates, Inc.}, + title = {LightGBM: A Highly Efficient Gradient Boosting Decision Tree}, + url = {https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf}, + volume = {30}, + year = {2017} +} + +@article{baitcn, + author = {Bai, Shaojie and Kolter, J. Zico and Koltun Vladlen}, + title = {cf2 expnd0expndtw0kerning0 +outl0strokewidth0 strokec2 An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling}, + journal = {arXiv preprint arXiv:1803.01271v2}, + year = {2018} +} + +@inproceedings{dauphin, + title = {Language modeling with gated convolutional networks}, + author = {Dauphin, Yann N. and Fan, Angela and Auli, Michael and Grangier, David }, + booktitle = {International Conference on Machine Learning}, + year = {2017} +} + +pardpardeftab720partightenfactor0 +cf3 cb4 outl0strokewidth0 @misc{kerastcn, + author = {Philippe Remy}, + title = {Temporal Convolutional Networks for Keras}, + year = {2020}, + publisher = {GitHub}, + journal = {GitHub repository}, + howpublished = {\url{https://github.com/philipperemy/keras-tcn}}, +}cf2 cb1 outl0strokewidth0 strokec2 +pardtx566tx1133tx1700tx2267tx2834tx3401tx3968tx4535tx5102tx5669tx6236tx6803pardirnaturalpartightenfactor0 +cf2 +@article{lecun2015deep, + title={Deep learning}, + author={LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey}, + journal={nature}, + volume={521}, + number={7553}, + pages={436}, + year={2015}, + publisher={Nature Publishing Group} +}cf0 kerning1expnd0expndtw0 outl0strokewidth0 + +@inproceedings{fcn, + title = {cf5 expnd0expndtw0kerning0 +Fully convolutional networks for semantic segmentation}, + author = {Long, J. and Shelhamer, E. And Darrell, T}, + booktitle = {IEEE conference on computer vision and pattern recognition}, + pages = {3431-3440}, + year = {2015} +}} + +@ARTICLE{Brescia12, + author = {{Brescia}, Massimo and {Cavuoti}, Stefano and {Paolillo}, Maurizio and {Longo}, Giuseppe and {Puzia}, Thomas}, + title = "{The detection of globular clusters in galaxies as a data mining problem}", + journal = {\mnras}, + keywords = {methods: data analysis, methods: statistical, globular clusters: general, galaxies: elliptical and lenticular, cD, galaxies: individual: NGC 1399, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2012, + month = apr, + volume = {421}, + number = {2}, + pages = {1155-1165}, + doi = {10.1111/j.1365-2966.2011.20375.x}, +archivePrefix = {arXiv}, + eprint = {1110.2144}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2012MNRAS.421.1155B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +%bibitem{hastieetal} +@book{Rosenblatt61, + author = {Rosenblatt, F.}, + publisher = {Spartan Books, New York}, + title = {Principles of Neurodynamics. Perceptrons and the Theory of Brain Mechanisms}, + year = 1961 +} + +@article{Nocedal80, + ISSN = {00255718, 10886842}, + URL = {http://www.jstor.org/stable/2006193}, + abstract = {We study how to use the BFGS quasi-Newton matrices to precondition minimization methods for problems where the storage is critical. We give an update formula which generates matrices using information from the last $m$ iterations, where $m$ is any number supplied by the user. The quasi-Newton matrix is updated at every iteration by dropping the oldest information and replacing it by the newest information. It is shown that the matrices generated have some desirable properties. The resulting algorithms are tested numerically and compared with several well-known methods.}, + author = {Jorge Nocedal}, + journal = {Mathematics of Computation}, + number = {151}, + pages = {773--782}, + publisher = {American Mathematical Society}, + title = {Updating Quasi-Newton Matrices with Limited Storage}, + volume = {35}, + year = {1980} +} + +@book{Tikhonov77, + author = {Tikhonov, A. N and Arsenin, V. Y.}, + publisher = {Winston}, + title = {Solutions of Ill-posed problems}, + year = {1977} +} + + +@article{deBoer05, + author = {de Boer, Pieter-Tjerk and Kroese, D.P. and Mannor, Shie and Rubinstein, Reuven Y.}, + journal = {Annals of Operations Research}, + pages = {19--67}, + title = {A Tutorial on the Cross-Entropy Method}, + volume = {134}, + year = {2005} +} + + +@book{Sutton98, +author = {Sutton, Richard S. and Barto, Andrew G.}, +title = {Introduction to Reinforcement Learning}, +year = {1998}, +isbn = {0262193981}, +publisher = {MIT Press}, +address = {Cambridge, MA, USA}, +edition = {1st}, +} + +@article{Cavuoti20, + author = {Cavuoti, S. and Amaro, V. and Brescia, M. and Vellucci, C. and Tortora, C. and Longo, G.}, + title = "{METAPHOR: a machine-learning-based method for the probability density estimation of photometric redshifts}", + journal = {Monthly Notices of the Royal Astronomical Society}, + volume = {465}, + number = {2}, + pages = {1959-1973}, + year = {2016}, + month = {11}, + abstract = "{A variety of fundamental astrophysical science topics require the determination of very accurate photometric redshifts (photo-z). A wide plethora of methods have been developed, based either on template models fitting or on empirical explorations of the photometric parameter space. Machine-learning-based techniques are not explicitly dependent on the physical priors and able to produce accurate photo-z estimations within the photometric ranges derived from the spectroscopic training set. These estimates, however, are not easy to characterize in terms of a photo-z probability density function (PDF), due to the fact that the analytical relation mapping the photometric parameters on to the redshift space is virtually unknown. We present METAPHOR (Machine-learning Estimation Tool for Accurate PHOtometric Redshifts), a method designed to provide a reliable PDF of the error distribution for empirical techniques. The method is implemented as a modular workflow, whose internal engine for photo-z estimation makes use of the MLPQNA neural network (Multi Layer Perceptron with Quasi Newton learning rule), with the possibility to easily replace the specific machine-learning model chosen to predict photo-z. We present a summary of results on SDSS-DR9 galaxy data, used also to perform a direct comparison with PDFs obtained by the Le Phare spectral energy distribution template fitting. We show that METAPHOR is capable to estimate the precision and reliability of photometric redshifts obtained with three different self-adaptive techniques, i.e. MLPQNA, Random Forest and the standard K-Nearest Neighbors models.}", + issn = {0035-8711}, + doi = {10.1093/mnras/stw2930}, + url = {https://doi.org/10.1093/mnras/stw2930}, + eprint = {https://academic.oup.com/mnras/article-pdf/465/2/1959/13480868/stw2930.pdf}, +} + + + +@article{Schmidt20, + author = {Schmidt, S J and Malz, A I and Soo, J Y H and Almosallam, I A and Brescia, M and Cavuoti, S and Cohen-Tanugi, J and Connolly, A J and DeRose, J and Freeman, P E and Graham, M L and Iyer, K G and Jarvis, M J and Kalmbach, J B and Kovacs, E and Lee, A B and Longo, G and Morrison, C B and Newman, J A and Nourbakhsh, E and Nuss, E and Pospisil, T and Tranin, H and Wechsler, R H and Zhou, R and Izbicki, R and (The LSST Dark Energy Science Collaboration) }, + title = "{Evaluation of probabilistic photometric redshift estimation approaches for The Rubin Observatory Legacy Survey of Space and Time (LSST)}", + journal = {Monthly Notices of the Royal Astronomical Society}, + volume = {499}, + number = {2}, + pages = {1587-1606}, + year = {2020}, + month = {09}, + abstract = "{Many scientific investigations of photometric galaxy surveys require redshift estimates, whose uncertainty properties are best encapsulated by photometric redshift (photo-z) posterior probability density functions (PDFs). A plethora of photo-z PDF estimation methodologies abound, producing discrepant results with no consensus on a preferred approach. We present the results of a comprehensive experiment comparing 12 photo-z algorithms applied to mock data produced for The Rubin Observatory Legacy Survey of Space and Time Dark Energy Science Collaboration. By supplying perfect prior information, in the form of the complete template library and a representative training set as inputs to each code, we demonstrate the impact of the assumptions underlying each technique on the output photo-z PDFs. In the absence of a notion of true, unbiased photo-z PDFs, we evaluate and interpret multiple metrics of the ensemble properties of the derived photo-z PDFs as well as traditional reductions to photo-z point estimates. We report systematic biases and overall over/underbreadth of the photo-z PDFs of many popular codes, which may indicate avenues for improvement in the algorithms or implementations. Furthermore, we raise attention to the limitations of established metrics for assessing photo-z PDF accuracy; though we identify the conditional density estimate loss as a promising metric of photo-z PDF performance in the case where true redshifts are available but true photo-z PDFs are not, we emphasize the need for science-specific performance metrics.}", + issn = {0035-8711}, + doi = {10.1093/mnras/staa2799}, + url = {https://doi.org/10.1093/mnras/staa2799}, + eprint = {https://academic.oup.com/mnras/article-pdf/499/2/1587/33890975/staa2799.pdf}, +} + + + + +@inproceedings{NIPS1994_a1140a3d, + author = {Bottou, L\'{e}on and Bengio, Yoshua}, + booktitle = {Advances in Neural Information Processing Systems}, + editor = {G. Tesauro and D. Touretzky and T. Leen}, + pages = {585--592}, + publisher = {MIT Press}, + title = {Convergence Properties of the K-Means Algorithms}, + url = {https://proceedings.neurips.cc/paper/1994/file/a1140a3d0df1c81e24ae954d935e8926-Paper.pdf}, + volume = {7}, + year = {1995} +} + +@article{doi:10.1098, +author = {Jolliffe, Ian T. and Cadima, Jorge }, +title = {Principal component analysis: a review and recent developments}, +journal = {Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences}, +volume = {374}, +number = {2065}, +pages = {20150202}, +year = {2016}, +doi = {10.1098/rsta.2015.0202}, + +URL = {https://royalsocietypublishing.org/doi/abs/10.1098/rsta.2015.0202}, +eprint = {https://royalsocietypublishing.org/doi/pdf/10.1098/rsta.2015.0202} + +} + +@ARTICLE{Planck15, + author = {{Planck Collaboration} and {Ade}, P.~A.~R. and {Aghanim}, N. and {Arnaud}, M. and {Ashdown}, M. and {Aumont}, J. and {Baccigalupi}, C. and {Banday}, A.~J. and {Barreiro}, R.~B. and {Bartlett}, J.~G. and {Bartolo}, N. and {Battaner}, E. and {Battye}, R. and {Benabed}, K. and {Beno{\^\i}t}, A. and {Benoit-L{\'e}vy}, A. and {Bernard}, J. -P. and {Bersanelli}, M. and {Bielewicz}, P. and {Bock}, J.~J. and {Bonaldi}, A. and {Bonavera}, L. and {Bond}, J.~R. and {Borrill}, J. and {Bouchet}, F.~R. and {Boulanger}, F. and {Bucher}, M. and {Burigana}, C. and {Butler}, R.~C. and {Calabrese}, E. and {Cardoso}, J. -F. and {Catalano}, A. and {Challinor}, A. and {Chamballu}, A. and {Chary}, R. -R. and {Chiang}, H.~C. and {Chluba}, J. and {Christensen}, P.~R. and {Church}, S. and {Clements}, D.~L. and {Colombi}, S. and {Colombo}, L.~P.~L. and {Combet}, C. and {Coulais}, A. and {Crill}, B.~P. and {Curto}, A. and {Cuttaia}, F. and {Danese}, L. and {Davies}, R.~D. and {Davis}, R.~J. and {de Bernardis}, P. and {de Rosa}, A. and {de Zotti}, G. and {Delabrouille}, J. and {D{\'e}sert}, F. -X. and {Di Valentino}, E. and {Dickinson}, C. and {Diego}, J.~M. and {Dolag}, K. and {Dole}, H. and {Donzelli}, S. and {Dor{\'e}}, O. and {Douspis}, M. and {Ducout}, A. and {Dunkley}, J. and {Dupac}, X. and {Efstathiou}, G. and {Elsner}, F. and {En{\ss}lin}, T.~A. and {Eriksen}, H.~K. and {Farhang}, M. and {Fergusson}, J. and {Finelli}, F. and {Forni}, O. and {Frailis}, M. and {Fraisse}, A.~A. and {Franceschi}, E. and {Frejsel}, A. and {Galeotta}, S. and {Galli}, S. and {Ganga}, K. and {Gauthier}, C. and {Gerbino}, M. and {Ghosh}, T. and {Giard}, M. and {Giraud-H{\'e}raud}, Y. and {Giusarma}, E. and {Gjerl{\o}w}, E. and {Gonz{\'a}lez-Nuevo}, J. and {G{\'o}rski}, K.~M. and {Gratton}, S. and {Gregorio}, A. and {Gruppuso}, A. and {Gudmundsson}, J.~E. and {Hamann}, J. and {Hansen}, F.~K. and {Hanson}, D. and {Harrison}, D.~L. and {Helou}, G. and {Henrot-Versill{\'e}}, S. and {Hern{\'a}ndez-Monteagudo}, C. and {Herranz}, D. and {Hildebrandt}, S.~R. and {Hivon}, E. and {Hobson}, M. and {Holmes}, W.~A. and {Hornstrup}, A. and {Hovest}, W. and {Huang}, Z. and {Huffenberger}, K.~M. and {Hurier}, G. and {Jaffe}, A.~H. and {Jaffe}, T.~R. and {Jones}, W.~C. and {Juvela}, M. and {Keih{\"a}nen}, E. and {Keskitalo}, R. and {Kisner}, T.~S. and {Kneissl}, R. and {Knoche}, J. and {Knox}, L. and {Kunz}, M. and {Kurki-Suonio}, H. and {Lagache}, G. and {L{\"a}hteenm{\"a}ki}, A. and {Lamarre}, J. -M. and {Lasenby}, A. and {Lattanzi}, M. and {Lawrence}, C.~R. and {Leahy}, J.~P. and {Leonardi}, R. and {Lesgourgues}, J. and {Levrier}, F. and {Lewis}, A. and {Liguori}, M. and {Lilje}, P.~B. and {Linden-V{\o}rnle}, M. and {L{\'o}pez-Caniego}, M. and {Lubin}, P.~M. and {Mac{\'\i}as-P{\'e}rez}, J.~F. and {Maggio}, G. and {Maino}, D. and {Mandolesi}, N. and {Mangilli}, A. and {Marchini}, A. and {Maris}, M. and {Martin}, P.~G. and {Martinelli}, M. and {Mart{\'\i}nez-Gonz{\'a}lez}, E. and {Masi}, S. and {Matarrese}, S. and {McGehee}, P. and {Meinhold}, P.~R. and {Melchiorri}, A. and {Melin}, J. -B. and {Mendes}, L. and {Mennella}, A. and {Migliaccio}, M. and {Millea}, M. and {Mitra}, S. and {Miville-Desch{\^e}nes}, M. -A. and {Moneti}, A. and {Montier}, L. and {Morgante}, G. and {Mortlock}, D. and {Moss}, A. and {Munshi}, D. and {Murphy}, J.~A. and {Naselsky}, P. and {Nati}, F. and {Natoli}, P. and {Netterfield}, C.~B. and {N{\o}rgaard-Nielsen}, H.~U. and {Noviello}, F. and {Novikov}, D. and {Novikov}, I. and {Oxborrow}, C.~A. and {Paci}, F. and {Pagano}, L. and {Pajot}, F. and {Paladini}, R. and {Paoletti}, D. and {Partridge}, B. and {Pasian}, F. and {Patanchon}, G. and {Pearson}, T.~J. and {Perdereau}, O. and {Perotto}, L. and {Perrotta}, F. and {Pettorino}, V. and {Piacentini}, F. and {Piat}, M. and {Pierpaoli}, E. and {Pietrobon}, D. and {Plaszczynski}, S. and {Pointecouteau}, E. and {Polenta}, G. and {Popa}, L. and {Pratt}, G.~W. and {Pr{\'e}zeau}, G. and {Prunet}, S. and {Puget}, J. -L. and {Rachen}, J.~P. and {Reach}, W.~T. and {Rebolo}, R. and {Reinecke}, M. and {Remazeilles}, M. and {Renault}, C. and {Renzi}, A. and {Ristorcelli}, I. and {Rocha}, G. and {Rosset}, C. and {Rossetti}, M. and {Roudier}, G. and {Rouill{\'e} d'Orfeuil}, B. and {Rowan-Robinson}, M. and {Rubi{\~n}o-Mart{\'\i}n}, J.~A. and {Rusholme}, B. and {Said}, N. and {Salvatelli}, V. and {Salvati}, L. and {Sandri}, M. and {Santos}, D. and {Savelainen}, M. and {Savini}, G. and {Scott}, D. and {Seiffert}, M.~D. and {Serra}, P. and {Shellard}, E.~P.~S. and {Spencer}, L.~D. and {Spinelli}, M. and {Stolyarov}, V. and {Stompor}, R. and {Sudiwala}, R. and {Sunyaev}, R. and {Sutton}, D. and {Suur-Uski}, A. -S. and {Sygnet}, J. -F. and {Tauber}, J.~A. and {Terenzi}, L. and {Toffolatti}, L. and {Tomasi}, M. and {Tristram}, M. and {Trombetti}, T. and {Tucci}, M. and {Tuovinen}, J. and {T{\"u}rler}, M. and {Umana}, G. and {Valenziano}, L. and {Valiviita}, J. and {Van Tent}, F. and {Vielva}, P. and {Villa}, F. and {Wade}, L.~A. and {Wandelt}, B.~D. and {Wehus}, I.~K. and {White}, M. and {White}, S.~D.~M. and {Wilkinson}, A. and {Yvon}, D. and {Zacchei}, A. and {Zonca}, A.}, + title = "{Planck 2015 results. XIII. Cosmological parameters}", + journal = {\aap}, + keywords = {cosmology: observations, cosmology: theory, cosmic background radiation, cosmological parameters, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2016, + month = sep, + volume = {594}, + eid = {A13}, + pages = {A13}, + doi = {10.1051/0004-6361/201525830}, +archivePrefix = {arXiv}, + eprint = {1502.01589}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016A&A...594A..13P}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{astro-ph/9603021, + author = {{Tegmark}, Max and {Taylor}, Andy N. and {Heavens}, Alan F.}, + title = "{Karhunen-Lo{\`e}ve Eigenvalue Problems in Cosmology: How Should We Tackle Large Data Sets?}", + journal = {\apj}, + keywords = {Cosmology: Cosmic Microwave Background, Cosmology: Theory, Cosmology: Large-Scale Structure of Universe, Methods: Data Analysis, Methods: Statistical, Astrophysics}, + year = 1997, + month = may, + volume = {480}, + number = {1}, + pages = {22-35}, + doi = {10.1086/303939}, +archivePrefix = {arXiv}, + eprint = {astro-ph/9603021}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/1997ApJ...480...22T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@article{10.1093/comjnl/7.2.155, + author = {Powell, M. J. D.}, + title = "{An efficient method for finding the minimum of a function of several variables without calculating derivatives}", + journal = {The Computer Journal}, + volume = {7}, + number = {2}, + pages = {155-162}, + year = {1964}, + month = {01}, + abstract = "{A simple variation of the well-known method of minimizing a function of several variables by changing one parameter at a time is described. This variation is such that when the procedure is applied to a quadratic form, it causes conjugate directions to be chosen, so the ultimate rate of convergence is fast when the method is used to minimize a general function. A further variation completes the method, and its ensures that the convergence rate from a bad approximation to a minimum is always efficient. Practical applications of the procedure have proved to be very satisfactory, and numerical examples are given in which functions of up to twenty variables are minimized.}", + issn = {0010-4620}, + doi = {10.1093/comjnl/7.2.155}, + url = {https://doi.org/10.1093/comjnl/7.2.155}, + eprint = {https://academic.oup.com/comjnl/article-pdf/7/2/155/959784/070155.pdf}, +} + + + + + +@ARTICLE{Benitez:2000, + author = {{Ben{\'\i}tez}, Narciso}, + title = "{Bayesian Photometric Redshift Estimation}", + journal = {\apj}, + keywords = {Galaxies: Distances and Redshifts, Galaxies: Photometry, Methods: Statistical, Astrophysics}, + year = 2000, + month = jun, + volume = {536}, + number = {2}, + pages = {571-583}, + doi = {10.1086/308947}, +archivePrefix = {arXiv}, + eprint = {astro-ph/9811189}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2000ApJ...536..571B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@PHDTHESIS{Capak:2004, + author = {{Capak}, Peter L.}, + title = "{Probing global star and galaxy formation using deep multi-wavelength surveys}", + keywords = {Physics: Astronomy and Astrophysics}, + school = {UNIVERSITY OF HAWAI'I}, + year = 2004, + month = jan, + adsurl = {https://ui.adsabs.harvard.edu/abs/2004PhDT.........4C}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Raichoor/etal:2014, + author = {{Raichoor}, A. and {Mei}, S. and {Erben}, T. and {Hildebrandt}, H. and {Huertas-Company}, M. and {Ilbert}, O. and {Licitra}, R. and {Ball}, N.~M. and {Boissier}, S. and {Boselli}, A. and {Chen}, Y. -T. and {C{\^o}t{\'e}}, P. and {Cuillandre}, J. -C. and {Duc}, P.~A. and {Durrell}, P.~R. and {Ferrarese}, L. and {Guhathakurta}, P. and {Gwyn}, S.~D.~J. and {Kavelaars}, J.~J. and {Lan{\c{c}}on}, A. and {Liu}, C. and {MacArthur}, L.~A. and {Muller}, M. and {Mu{\~n}oz}, R.~P. and {Peng}, E.~W. and {Puzia}, T.~H. and {Sawicki}, M. and {Toloba}, E. and {Van Waerbeke}, L. and {Woods}, D. and {Zhang}, H.}, + title = "{The Next Generation Virgo Cluster Survey. XV. The Photometric Redshift Estimation for Background Sources}", + journal = {\apj}, + keywords = {galaxies: distances and redshifts, galaxies: high-redshift, galaxies: photometry, techniques: photometric, Astrophysics - Astrophysics of Galaxies, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2014, + month = dec, + volume = {797}, + number = {2}, + eid = {102}, + pages = {102}, + doi = {10.1088/0004-637X/797/2/102}, +archivePrefix = {arXiv}, + eprint = {1410.2276}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2014ApJ...797..102R}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Kohonen:1982, + author="Kohonen, Teuvo", + title="Self-organized formation of topologically correct feature maps", + journal="Biological Cybernetics", + year="1982", + month="Jan", + day="01", + volume="43", + number="1", + pages="59--69", + issn="1432-0770", + doi="10.1007/BF00337288", + url="https://doi.org/10.1007/BF00337288" +} + +@Article{Wehrens/Kruisselbrink:2018, + title = {Flexible Self-Organizing Maps in {kohonen} 3.0}, + author = {Ron Wehrens and Johannes Kruisselbrink}, + journal = {Journal of Statistical Software}, + year = {2018}, + volume = {87}, + number = {7}, + pages = {1--18}, + doi = {10.18637/jss.v087.i07}, +} + +@Article{Wehrens/Lutgarde:2007, + title = {Self- and Super-Organizing Maps in {R}: The {kohonen} + Package}, + author = {Ron Wehrens and Lutgarde M. C. Buydens}, + journal = {Journal of Statistical Software}, + year = {2007}, + volume = {21}, + number = {5}, + pages = {1--19}, + doi = {10.18637/jss.v021.i05}, +} + +@Manual{R, + title = {R: A Language and Environment for Statistical Computing}, + author = {{R Core Team}}, + organization = {R Foundation for Statistical Computing}, + address = {Vienna, Austria}, + year = {2015}, + url = {https://www.R-project.org/}, +} + +@ARTICLE{Wright/etal:2020a, + author = {{Wright}, Angus H. and {Hildebrandt}, Hendrik and {van den Busch}, Jan Luca and {Heymans}, Catherine}, + title = "{Photometric redshift calibration with self-organising maps}", + journal = {\aap}, + keywords = {techniques: photometric, cosmology: observations, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2020, + month = may, + volume = {637}, + eid = {A100}, + pages = {A100}, + doi = {10.1051/0004-6361/201936782}, +archivePrefix = {arXiv}, + eprint = {1909.09632}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020A&A...637A.100W}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{Wright/etal:2020b, + author = {{Wright}, Angus H. and {Hildebrandt}, Hendrik and {van den Busch}, Jan Luca and {Heymans}, Catherine and {Joachimi}, Benjamin and {Kannawadi}, Arun and {Kuijken}, Konrad}, + title = "{KiDS+VIKING-450: Improved cosmological parameter constraints from redshift calibration with self-organising maps}", + journal = {\aap}, + keywords = {gravitational lensing: weak, cosmology: observations, surveys, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2020, + month = aug, + volume = {640}, + eid = {L14}, + pages = {L14}, + doi = {10.1051/0004-6361/202038389}, +archivePrefix = {arXiv}, + eprint = {2005.04207}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020A&A...640L..14W}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{2019arXiv191202762P, + author = {{Papamakarios}, George and {Nalisnick}, Eric and {Jimenez Rezende}, Danilo and {Mohamed}, Shakir and {Lakshminarayanan}, Balaji}, + title = "{Normalizing Flows for Probabilistic Modeling and Inference}", + journal = {arXiv e-prints}, + keywords = {Statistics - Machine Learning, Computer Science - Machine Learning}, + year = 2019, + month = dec, + eid = {arXiv:1912.02762}, + pages = {arXiv:1912.02762}, +archivePrefix = {arXiv}, + eprint = {1912.02762}, + primaryClass = {stat.ML}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv191202762P}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@article{cfhtlens, + author = {Heymans, Catherine and van Waerbeke, Ludovic and Miller, Lance and Erben, Thomas and Hildebrandt, Hendrik and Hoekstra, Henk and Kitching, Thomas D. and Mellier, Yannick and Simon, Patrick and Bonnett, Christopher and Coupon, Jean and Fu, Liping and Harnois-Déraps, Joachim and Hudson, Michael J. and Kilbinger, Martin and Kuijken, Koenraad and Rowe, Barnaby and Schrabback, Tim and Semboloni, Elisabetta and van Uitert, Edo and Vafaei, Sanaz and Velander, Malin}, + title = "{CFHTLenS: the Canada–France–Hawaii Telescope Lensing Survey}", + journal = {Monthly Notices of the Royal Astronomical Society}, + volume = {427}, + number = {1}, + pages = {146-166}, + year = {2012}, + month = {11}, + abstract = "{We present the Canada–France–Hawaii Telescope Lensing Survey (CFHTLenS) that accurately determines a weak gravitational lensing signal from the full 154 deg2 of deep multicolour data obtained by the CFHT Legacy Survey. Weak gravitational lensing by large-scale structure is widely recognized as one of the most powerful but technically challenging probes of cosmology. We outline the CFHTLenS analysis pipeline, describing how and why every step of the chain from the raw pixel data to the lensing shear and photometric redshift measurement has been revised and improved compared to previous analyses of a subset of the same data. We present a novel method to identify data which contributes a non-negligible contamination to our sample and quantify the required level of calibration for the survey. Through a series of cosmology-insensitive tests we demonstrate the robustness of the resulting cosmic shear signal, presenting a science-ready shear and photometric redshift catalogue for future exploitation.}", + issn = {0035-8711}, + doi = {10.1111/j.1365-2966.2012.21952.x}, + url = {https://doi.org/10.1111/j.1365-2966.2012.21952.x}, + eprint = {https://academic.oup.com/mnras/article-pdf/427/1/146/18231420/427-1-146.pdf} +} + + +@ARTICLE{des, + author = {{Troxel}, M.~A. and {MacCrann}, N. and {Zuntz}, J. and {Eifler}, T.~F. and {Krause}, E. and {Dodelson}, S. and {Gruen}, D. and {Blazek}, J. and {Friedrich}, O. and {Samuroff}, S. and {Prat}, J. and {Secco}, L.~F. and {Davis}, C. and {Fert{\'e}}, A. and {DeRose}, J. and {Alarcon}, A. and {Amara}, A. and {Baxter}, E. and {Becker}, M.~R. and {Bernstein}, G.~M. and {Bridle}, S.~L. and {Cawthon}, R. and {Chang}, C. and {Choi}, A. and {De Vicente}, J. and {Drlica-Wagner}, A. and {Elvin-Poole}, J. and {Frieman}, J. and {Gatti}, M. and {Hartley}, W.~G. and {Honscheid}, K. and {Hoyle}, B. and {Huff}, E.~M. and {Huterer}, D. and {Jain}, B. and {Jarvis}, M. and {Kacprzak}, T. and {Kirk}, D. and {Kokron}, N. and {Krawiec}, C. and {Lahav}, O. and {Liddle}, A.~R. and {Peacock}, J. and {Rau}, M.~M. and {Refregier}, A. and {Rollins}, R.~P. and {Rozo}, E. and {Rykoff}, E.~S. and {S{\'a}nchez}, C. and {Sevilla-Noarbe}, I. and {Sheldon}, E. and {Stebbins}, A. and {Varga}, T.~N. and {Vielzeuf}, P. and {Wang}, M. and {Wechsler}, R.~H. and {Yanny}, B. and {Abbott}, T.~M.~C. and {Abdalla}, F.~B. and {Allam}, S. and {Annis}, J. and {Bechtol}, K. and {Benoit-L{\'e}vy}, A. and {Bertin}, E. and {Brooks}, D. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Carretero}, J. and {Castander}, F.~J. and {Crocce}, M. and {Cunha}, C.~E. and {D'Andrea}, C.~B. and {da Costa}, L.~N. and {DePoy}, D.~L. and {Desai}, S. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Doel}, P. and {Fernandez}, E. and {Flaugher}, B. and {Fosalba}, P. and {Garc{\'\i}a-Bellido}, J. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Goldstein}, D.~A. and {Gruendl}, R.~A. and {Gschwend}, J. and {Gutierrez}, G. and {James}, D.~J. and {Jeltema}, T. and {Johnson}, M.~W.~G. and {Johnson}, M.~D. and {Kent}, S. and {Kuehn}, K. and {Kuhlmann}, S. and {Kuropatkin}, N. and {Li}, T.~S. and {Lima}, M. and {Lin}, H. and {Maia}, M.~A.~G. and {March}, M. and {Marshall}, J.~L. and {Martini}, P. and {Melchior}, P. and {Menanteau}, F. and {Miquel}, R. and {Mohr}, J.~J. and {Neilsen}, E. and {Nichol}, R.~C. and {Nord}, B. and {Petravick}, D. and {Plazas}, A.~A. and {Romer}, A.~K. and {Roodman}, A. and {Sako}, M. and {Sanchez}, E. and {Scarpine}, V. and {Schindler}, R. and {Schubnell}, M. and {Smith}, M. and {Smith}, R.~C. and {Soares-Santos}, M. and {Sobreira}, F. and {Suchyta}, E. and {Swanson}, M.~E.~C. and {Tarle}, G. and {Thomas}, D. and {Tucker}, D.~L. and {Vikram}, V. and {Walker}, A.~R. and {Weller}, J. and {Zhang}, Y. and {DES Collaboration}}, + title = "{Dark Energy Survey Year 1 results: Cosmological constraints from cosmic shear}", + journal = {\prd}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = aug, + volume = {98}, + number = {4}, + eid = {043528}, + pages = {043528}, + doi = {10.1103/PhysRevD.98.043528}, +archivePrefix = {arXiv}, + eprint = {1708.01538}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018PhRvD..98d3528T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{rcslens, + author = {{Hildebrandt}, H. and {Choi}, A. and {Heymans}, C. and {Blake}, C. and {Erben}, T. and {Miller}, L. and {Nakajima}, R. and {van Waerbeke}, L. and {Viola}, M. and {Buddendiek}, A. and {Harnois-D{\'e}raps}, J. and {Hojjati}, A. and {Joachimi}, B. and {Joudaki}, S. and {Kitching}, T.~D. and {Wolf}, C. and {Gwyn}, S. and {Johnson}, N. and {Kuijken}, K. and {Sheikhbahaee}, Z. and {Tudorica}, A. and {Yee}, H.~K.~C.}, + title = "{RCSLenS: The Red Cluster Sequence Lensing Survey}", + journal = {\mnras}, + keywords = {gravitational lensing: weak, surveys, galaxies: photometry, cosmology: observations, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2016, + month = nov, + volume = {463}, + number = {1}, + pages = {635-654}, + doi = {10.1093/mnras/stw2013}, +archivePrefix = {arXiv}, + eprint = {1603.07722}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2016MNRAS.463..635H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{kids, + author = {{Asgari}, Marika and {Lin}, Chieh-An and {Joachimi}, Benjamin and {Giblin}, Benjamin and {Heymans}, Catherine and {Hildebrandt}, Hendrik and {Kannawadi}, Arun and {St{\"o}lzner}, Benjamin and {Tr{\"o}ster}, Tilman and {van den Busch}, Jan Luca and {Wright}, Angus H. and {Bilicki}, Maciej and {Blake}, Chris and {de Jong}, Jelte and {Dvornik}, Andrej and {Erben}, Thomas and {Getman}, Fedor and {Hoekstra}, Henk and {K{\"o}hlinger}, Fabian and {Kuijken}, Konrad and {Miller}, Lance and {Radovich}, Mario and {Schneider}, Peter and {Shan}, HuanYuan and {Valentijn}, Edwin}, + title = "{KiDS-1000 cosmology: Cosmic shear constraints and comparison between two point statistics}", + journal = {\aap}, + keywords = {gravitational lensing: weak, methods: observational, cosmology: observations, large-scale structure of Universe, cosmological parameters, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = jan, + volume = {645}, + eid = {A104}, + pages = {A104}, + doi = {10.1051/0004-6361/202039070}, +archivePrefix = {arXiv}, + eprint = {2007.15633}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021A&A...645A.104A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{hsc, + author = {{Hamana}, Takashi and {Shirasaki}, Masato and {Miyazaki}, Satoshi and {Hikage}, Chiaki and {Oguri}, Masamune and {More}, Surhud and {Armstrong}, Robert and {Leauthaud}, Alexie and {Mandelbaum}, Rachel and {Miyatake}, Hironao and {Nishizawa}, Atsushi J. and {Simet}, Melanie and {Takada}, Masahiro and {Aihara}, Hiroaki and {Bosch}, James and {Komiyama}, Yutaka and {Lupton}, Robert and {Murayama}, Hitoshi and {Strauss}, Michael A. and {Tanaka}, Masayuki}, + title = "{Cosmological constraints from cosmic shear two-point correlation functions with HSC survey first-year data}", + journal = {\pasj}, + keywords = {cosmological parameters, cosmology: observations, dark matter, large-scale structure of universe, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2020, + month = feb, + volume = {72}, + number = {1}, + eid = {16}, + pages = {16}, + doi = {10.1093/pasj/psz138}, +archivePrefix = {arXiv}, + eprint = {1906.06041}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020PASJ...72...16H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{des-3x2pt, + author = {{Abbott}, T.~M.~C. and {Abdalla}, F.~B. and {Alarcon}, A. and {Aleksi{\'c}}, J. and {Allam}, S. and {Allen}, S. and {Amara}, A. and {Annis}, J. and {Asorey}, J. and {Avila}, S. and {Bacon}, D. and {Balbinot}, E. and {Banerji}, M. and {Banik}, N. and {Barkhouse}, W. and {Baumer}, M. and {Baxter}, E. and {Bechtol}, K. and {Becker}, M.~R. and {Benoit-L{\'e}vy}, A. and {Benson}, B.~A. and {Bernstein}, G.~M. and {Bertin}, E. and {Blazek}, J. and {Bridle}, S.~L. and {Brooks}, D. and {Brout}, D. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Busha}, M.~T. and {Campos}, A. and {Capozzi}, D. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Carretero}, J. and {Castander}, F.~J. and {Cawthon}, R. and {Chang}, C. and {Chen}, N. and {Childress}, M. and {Choi}, A. and {Conselice}, C. and {Crittenden}, R. and {Crocce}, M. and {Cunha}, C.~E. and {D'Andrea}, C.~B. and {da Costa}, L.~N. and {Das}, R. and {Davis}, T.~M. and {Davis}, C. and {De Vicente}, J. and {DePoy}, D.~L. and {DeRose}, J. and {Desai}, S. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Dodelson}, S. and {Doel}, P. and {Drlica-Wagner}, A. and {Eifler}, T.~F. and {Elliott}, A.~E. and {Elsner}, F. and {Elvin-Poole}, J. and {Estrada}, J. and {Evrard}, A.~E. and {Fang}, Y. and {Fernandez}, E. and {Fert{\'e}}, A. and {Finley}, D.~A. and {Flaugher}, B. and {Fosalba}, P. and {Friedrich}, O. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Garcia-Fernandez}, M. and {Gatti}, M. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Gill}, M.~S.~S. and {Glazebrook}, K. and {Goldstein}, D.~A. and {Gruen}, D. and {Gruendl}, R.~A. and {Gschwend}, J. and {Gutierrez}, G. and {Hamilton}, S. and {Hartley}, W.~G. and {Hinton}, S.~R. and {Honscheid}, K. and {Hoyle}, B. and {Huterer}, D. and {Jain}, B. and {James}, D.~J. and {Jarvis}, M. and {Jeltema}, T. and {Johnson}, M.~D. and {Johnson}, M.~W.~G. and {Kacprzak}, T. and {Kent}, S. and {Kim}, A.~G. and {King}, A. and {Kirk}, D. and {Kokron}, N. and {Kovacs}, A. and {Krause}, E. and {Krawiec}, C. and {Kremin}, A. and {Kuehn}, K. and {Kuhlmann}, S. and {Kuropatkin}, N. and {Lacasa}, F. and {Lahav}, O. and {Li}, T.~S. and {Liddle}, A.~R. and {Lidman}, C. and {Lima}, M. and {Lin}, H. and {MacCrann}, N. and {Maia}, M.~A.~G. and {Makler}, M. and {Manera}, M. and {March}, M. and {Marshall}, J.~L. and {Martini}, P. and {McMahon}, R.~G. and {Melchior}, P. and {Menanteau}, F. and {Miquel}, R. and {Miranda}, V. and {Mudd}, D. and {Muir}, J. and {M{\"o}ller}, A. and {Neilsen}, E. and {Nichol}, R.~C. and {Nord}, B. and {Nugent}, P. and {Ogando}, R.~L.~C. and {Palmese}, A. and {Peacock}, J. and {Peiris}, H.~V. and {Peoples}, J. and {Percival}, W.~J. and {Petravick}, D. and {Plazas}, A.~A. and {Porredon}, A. and {Prat}, J. and {Pujol}, A. and {Rau}, M.~M. and {Refregier}, A. and {Ricker}, P.~M. and {Roe}, N. and {Rollins}, R.~P. and {Romer}, A.~K. and {Roodman}, A. and {Rosenfeld}, R. and {Ross}, A.~J. and {Rozo}, E. and {Rykoff}, E.~S. and {Sako}, M. and {Salvador}, A.~I. and {Samuroff}, S. and {S{\'a}nchez}, C. and {Sanchez}, E. and {Santiago}, B. and {Scarpine}, V. and {Schindler}, R. and {Scolnic}, D. and {Secco}, L.~F. and {Serrano}, S. and {Sevilla-Noarbe}, I. and {Sheldon}, E. and {Smith}, R.~C. and {Smith}, M. and {Smith}, J. and {Soares-Santos}, M. and {Sobreira}, F. and {Suchyta}, E. and {Tarle}, G. and {Thomas}, D. and {Troxel}, M.~A. and {Tucker}, D.~L. and {Tucker}, B.~E. and {Uddin}, S.~A. and {Varga}, T.~N. and {Vielzeuf}, P. and {Vikram}, V. and {Vivas}, A.~K. and {Walker}, A.~R. and {Wang}, M. and {Wechsler}, R.~H. and {Weller}, J. and {Wester}, W. and {Wolf}, R.~C. and {Yanny}, B. and {Yuan}, F. and {Zenteno}, A. and {Zhang}, B. and {Zhang}, Y. and {Zuntz}, J. and {Dark Energy Survey Collaboration}}, + title = "{Dark Energy Survey year 1 results: Cosmological constraints from galaxy clustering and weak lensing}", + journal = {\prd}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = aug, + volume = {98}, + number = {4}, + eid = {043526}, + pages = {043526}, + doi = {10.1103/PhysRevD.98.043526}, +archivePrefix = {arXiv}, + eprint = {1708.01530}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018PhRvD..98d3526A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{kids-3x2pt, + author = {{Heymans}, Catherine and {Tr{\"o}ster}, Tilman and {Asgari}, Marika and {Blake}, Chris and {Hildebrandt}, Hendrik and {Joachimi}, Benjamin and {Kuijken}, Konrad and {Lin}, Chieh-An and {S{\'a}nchez}, Ariel G. and {van den Busch}, Jan Luca and {Wright}, Angus H. and {Amon}, Alexandra and {Bilicki}, Maciej and {de Jong}, Jelte and {Crocce}, Martin and {Dvornik}, Andrej and {Erben}, Thomas and {Fortuna}, Maria Cristina and {Getman}, Fedor and {Giblin}, Benjamin and {Glazebrook}, Karl and {Hoekstra}, Henk and {Joudaki}, Shahab and {Kannawadi}, Arun and {K{\"o}hlinger}, Fabian and {Lidman}, Chris and {Miller}, Lance and {Napolitano}, Nicola R. and {Parkinson}, David and {Schneider}, Peter and {Shan}, HuanYuan and {Valentijn}, Edwin A. and {Verdoes Kleijn}, Gijs and {Wolf}, Christian}, + title = "{KiDS-1000 Cosmology: Multi-probe weak gravitational lensing and spectroscopic galaxy clustering constraints}", + journal = {\aap}, + keywords = {gravitational lensing: weak, methods: data analysis, methods: statistical, surveys, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = feb, + volume = {646}, + eid = {A140}, + pages = {A140}, + doi = {10.1051/0004-6361/202039063}, +archivePrefix = {arXiv}, + eprint = {2007.15632}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021A&A...646A.140H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{kitching, + author = {{Kitching}, T.~D. and {Heavens}, A.~F. and {Das}, S.}, + title = "{3D weak gravitational lensing of the CMB and galaxies}", + journal = {\mnras}, + keywords = {gravitational lensing: weak, cosmological parameters, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2015, + month = may, + volume = {449}, + number = {2}, + pages = {2205-2214}, + doi = {10.1093/mnras/stv193}, +archivePrefix = {arXiv}, + eprint = {1408.7052}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2015MNRAS.449.2205K}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@article{heavens, + author = {Heavens, Alan}, + title = "{3D weak lensing}", + journal = {Monthly Notices of the Royal Astronomical Society}, + volume = {343}, + number = {4}, + pages = {1327-1334}, + year = {2003}, + month = {08}, + abstract = "{I propose an analysis method, based on spin-spherical harmonics and spherical Bessel functions, for large-scale weak lensing surveys which have source-distance information through photometric redshifts. I show that the distance information can significantly reduce statistical errors on cosmological parameters; in particular, 3D lensing analysis offers excellent prospects for constraining the equation of state of the vacuum energy which dominates the energy density of the Universe. I show that the ratio of pressure to energy density could be determined to an accuracy of ∼1 per cent or better. Having distance information also offers significant advantages in the control of systematic effects such as the intrinsic alignment of galaxies. The case for obtaining photometric redshifts is therefore compelling. A signal-to-noise eigenmode analysis of the modes shows that the modes with highest signal-to-noise ratio correspond quite closely to ignoring the redshift information, but there is significant extra information from a few radial modes. These modes are generally long-wavelength, suggesting that useful information can be gleaned even if the photometric redshifts are relatively inaccurate.}", + issn = {0035-8711}, + doi = {10.1046/j.1365-8711.2003.06780.x}, + url = {https://doi.org/10.1046/j.1365-8711.2003.06780.x}, + eprint = {https://academic.oup.com/mnras/article-pdf/343/4/1327/3684730/343-4-1327.pdf}, +} + + + +@ARTICLE{euclid, + author = {{Laureijs}, R. and {Amiaux}, J. and {Arduini}, S. and {Augu{\`e}res}, J. -L. and {Brinchmann}, J. and {Cole}, R. and {Cropper}, M. and {Dabin}, C. and {Duvet}, L. and {Ealet}, A. and {Garilli}, B. and {Gondoin}, P. and {Guzzo}, L. and {Hoar}, J. and {Hoekstra}, H. and {Holmes}, R. and {Kitching}, T. and {Maciaszek}, T. and {Mellier}, Y. and {Pasian}, F. and {Percival}, W. and {Rhodes}, J. and {Saavedra Criado}, G. and {Sauvage}, M. and {Scaramella}, R. and {Valenziano}, L. and {Warren}, S. and {Bender}, R. and {Castander}, F. and {Cimatti}, A. and {Le F{\`e}vre}, O. and {Kurki-Suonio}, H. and {Levi}, M. and {Lilje}, P. and {Meylan}, G. and {Nichol}, R. and {Pedersen}, K. and {Popa}, V. and {Rebolo Lopez}, R. and {Rix}, H. -W. and {Rottgering}, H. and {Zeilinger}, W. and {Grupp}, F. and {Hudelot}, P. and {Massey}, R. and {Meneghetti}, M. and {Miller}, L. and {Paltani}, S. and {Paulin-Henriksson}, S. and {Pires}, S. and {Saxton}, C. and {Schrabback}, T. and {Seidel}, G. and {Walsh}, J. and {Aghanim}, N. and {Amendola}, L. and {Bartlett}, J. and {Baccigalupi}, C. and {Beaulieu}, J. -P. and {Benabed}, K. and {Cuby}, J. -G. and {Elbaz}, D. and {Fosalba}, P. and {Gavazzi}, G. and {Helmi}, A. and {Hook}, I. and {Irwin}, M. and {Kneib}, J. -P. and {Kunz}, M. and {Mannucci}, F. and {Moscardini}, L. and {Tao}, C. and {Teyssier}, R. and {Weller}, J. and {Zamorani}, G. and {Zapatero Osorio}, M.~R. and {Boulade}, O. and {Foumond}, J.~J. and {Di Giorgio}, A. and {Guttridge}, P. and {James}, A. and {Kemp}, M. and {Martignac}, J. and {Spencer}, A. and {Walton}, D. and {Bl{\"u}mchen}, T. and {Bonoli}, C. and {Bortoletto}, F. and {Cerna}, C. and {Corcione}, L. and {Fabron}, C. and {Jahnke}, K. and {Ligori}, S. and {Madrid}, F. and {Martin}, L. and {Morgante}, G. and {Pamplona}, T. and {Prieto}, E. and {Riva}, M. and {Toledo}, R. and {Trifoglio}, M. and {Zerbi}, F. and {Abdalla}, F. and {Douspis}, M. and {Grenet}, C. and {Borgani}, S. and {Bouwens}, R. and {Courbin}, F. and {Delouis}, J. -M. and {Dubath}, P. and {Fontana}, A. and {Frailis}, M. and {Grazian}, A. and {Koppenh{\"o}fer}, J. and {Mansutti}, O. and {Melchior}, M. and {Mignoli}, M. and {Mohr}, J. and {Neissner}, C. and {Noddle}, K. and {Poncet}, M. and {Scodeggio}, M. and {Serrano}, S. and {Shane}, N. and {Starck}, J. -L. and {Surace}, C. and {Taylor}, A. and {Verdoes-Kleijn}, G. and {Vuerli}, C. and {Williams}, O.~R. and {Zacchei}, A. and {Altieri}, B. and {Escudero Sanz}, I. and {Kohley}, R. and {Oosterbroek}, T. and {Astier}, P. and {Bacon}, D. and {Bardelli}, S. and {Baugh}, C. and {Bellagamba}, F. and {Benoist}, C. and {Bianchi}, D. and {Biviano}, A. and {Branchini}, E. and {Carbone}, C. and {Cardone}, V. and {Clements}, D. and {Colombi}, S. and {Conselice}, C. and {Cresci}, G. and {Deacon}, N. and {Dunlop}, J. and {Fedeli}, C. and {Fontanot}, F. and {Franzetti}, P. and {Giocoli}, C. and {Garcia-Bellido}, J. and {Gow}, J. and {Heavens}, A. and {Hewett}, P. and {Heymans}, C. and {Holland}, A. and {Huang}, Z. and {Ilbert}, O. and {Joachimi}, B. and {Jennins}, E. and {Kerins}, E. and {Kiessling}, A. and {Kirk}, D. and {Kotak}, R. and {Krause}, O. and {Lahav}, O. and {van Leeuwen}, F. and {Lesgourgues}, J. and {Lombardi}, M. and {Magliocchetti}, M. and {Maguire}, K. and {Majerotto}, E. and {Maoli}, R. and {Marulli}, F. and {Maurogordato}, S. and {McCracken}, H. and {McLure}, R. and {Melchiorri}, A. and {Merson}, A. and {Moresco}, M. and {Nonino}, M. and {Norberg}, P. and {Peacock}, J. and {Pello}, R. and {Penny}, M. and {Pettorino}, V. and {Di Porto}, C. and {Pozzetti}, L. and {Quercellini}, C. and {Radovich}, M. and {Rassat}, A. and {Roche}, N. and {Ronayette}, S. and {Rossetti}, E. and {Sartoris}, B. and {Schneider}, P. and {Semboloni}, E. and {Serjeant}, S. and {Simpson}, F. and {Skordis}, C. and {Smadja}, G. and {Smartt}, S. and {Spano}, P. and {Spiro}, S. and {Sullivan}, M. and {Tilquin}, A. and {Trotta}, R. and {Verde}, L. and {Wang}, Y. and {Williger}, G. and {Zhao}, G. and {Zoubian}, J. and {Zucca}, E.}, + title = "{Euclid Definition Study Report}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Extragalactic Astrophysics, Astrophysics - Galaxy Astrophysics}, + year = 2011, + month = oct, + eid = {arXiv:1110.3193}, + pages = {arXiv:1110.3193}, +archivePrefix = {arXiv}, + eprint = {1110.3193}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2011arXiv1110.3193L}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{rubin, + author = {{Ivezi{\'c}}, {\v Z}. and {Kahn}, S.~M. and {Tyson}, J.~A. and {Abel}, B. and {Acosta}, E. and {Allsman}, R. and {Alonso}, D. and {AlSayyad}, Y. and {Anderson}, S.~F. and {Andrew}, J. and others}, + title = "{LSST: From Science Drivers to Reference Design and Anticipated Data Products}", + journal = {\apj}, + archivePrefix = "arXiv", + eprint = {0805.2366}, + keywords = {astrometry, cosmology: observations, Galaxy: general, methods: observational, stars: general, surveys}, + year = 2019, + month = mar, + volume = 873, + eid = {111}, + pages = {111}, + doi = {10.3847/1538-4357/ab042c}, + adsurl = {http://adsabs.harvard.edu/abs/2019ApJ...873..111I}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{roman, + author = {{Akeson}, Rachel and {Armus}, Lee and {Bachelet}, Etienne and {Bailey}, Vanessa and {Bartusek}, Lisa and {Bellini}, Andrea and {Benford}, Dominic and {Bennett}, David and {Bhattacharya}, Aparna and {Bohlin}, Ralph and {Boyer}, Martha and {Bozza}, Valerio and {Bryden}, Geoffrey and {Calchi Novati}, Sebastiano and {Carpenter}, Kenneth and {Casertano}, Stefano and {Choi}, Ami and {Content}, David and {Dayal}, Pratika and {Dressler}, Alan and {Dor{\'e}}, Olivier and {Fall}, S. Michael and {Fan}, Xiaohui and {Fang}, Xiao and {Filippenko}, Alexei and {Finkelstein}, Steven and {Foley}, Ryan and {Furlanetto}, Steven and {Kalirai}, Jason and {Gaudi}, B. Scott and {Gilbert}, Karoline and {Girard}, Julien and {Grady}, Kevin and {Greene}, Jenny and {Guhathakurta}, Puragra and {Heinrich}, Chen and {Hemmati}, Shoubaneh and {Hendel}, David and {Henderson}, Calen and {Henning}, Thomas and {Hirata}, Christopher and {Ho}, Shirley and {Huff}, Eric and {Hutter}, Anne and {Jansen}, Rolf and {Jha}, Saurabh and {Johnson}, Samson and {Jones}, David and {Kasdin}, Jeremy and {Kelly}, Patrick and {Kirshner}, Robert and {Koekemoer}, Anton and {Kruk}, Jeffrey and {Lewis}, Nikole and {Macintosh}, Bruce and {Madau}, Piero and {Malhotra}, Sangeeta and {Mandel}, Kaisey and {Massara}, Elena and {Masters}, Daniel and {McEnery}, Julie and {McQuinn}, Kristen and {Melchior}, Peter and {Melton}, Mark and {Mennesson}, Bertrand and {Peeples}, Molly and {Penny}, Matthew and {Perlmutter}, Saul and {Pisani}, Alice and {Plazas}, Andr{\'e}s and {Poleski}, Radek and {Postman}, Marc and {Ranc}, Cl{\'e}ment and {Rauscher}, Bernard and {Rest}, Armin and {Roberge}, Aki and {Robertson}, Brant and {Rodney}, Steven and {Rhoads}, James and {Rhodes}, Jason and {Ryan}, Russell, Jr. and {Sahu}, Kailash and {Sand}, David and {Scolnic}, Dan and {Seth}, Anil and {Shvartzvald}, Yossi and {Siellez}, Karelle and {Smith}, Arfon and {Spergel}, David and {Stassun}, Keivan and {Street}, Rachel and {Strolger}, Louis-Gregory and {Szalay}, Alexander and {Trauger}, John and {Troxel}, M.~A. and {Turnbull}, Margaret and {van der Marel}, Roeland and {von der Linden}, Anja and {Wang}, Yun and {Weinberg}, David and {Williams}, Benjamin and {Windhorst}, Rogier and {Wollack}, Edward and {Wu}, Hao-Yi and {Yee}, Jennifer and {Zimmerman}, Neil}, + title = "{The Wide Field Infrared Survey Telescope: 100 Hubbles for the 2020s}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Astrophysics of Galaxies}, + year = 2019, + month = feb, + eid = {arXiv:1902.05569}, + pages = {arXiv:1902.05569}, +archivePrefix = {arXiv}, + eprint = {1902.05569}, + primaryClass = {astro-ph.IM}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190205569A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@article{jain, + author = {Jain, Bhuvnesh and Connolly, Andrew and Takada, Masahiro}, + year = {2007}, + month = {03}, + pages = {013}, + title = {Colour tomography}, + volume = {2007}, + journal = {Journal of Cosmology and Astroparticle Physics}, + doi = {10.1088/1475-7516/2007/03/013} +} + +@article{rainbow, + title = {Rainbow cosmic shear: Optimization of tomographic bins}, + author = {Kitching, Thomas D. and Taylor, Peter L. and Capak, Peter and Masters, Daniel and Hoekstra, Henk}, + journal = {Phys. Rev. D}, + volume = {99}, + issue = {6}, + pages = {063536}, + numpages = {10}, + year = {2019}, + month = {Mar}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevD.99.063536}, + url = {https://link.aps.org/doi/10.1103/PhysRevD.99.063536} +} + + +@article{taylor18, + title = {Preparing for the cosmic shear data flood: Optimal data extraction and simulation requirements for stage IV dark energy experiments}, + author = {Taylor, Peter L. and Kitching, Thomas D. and McEwen, Jason D.}, + journal = {Phys. Rev. D}, + volume = {98}, + issue = {4}, + pages = {043532}, + numpages = {16}, + year = {2018}, + month = {Aug}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevD.98.043532}, + url = {https://link.aps.org/doi/10.1103/PhysRevD.98.043532} +} + + + +@article{taylor18b, + title = {$k$-cut cosmic shear: Tunable power spectrum sensitivity to test gravity}, + author = {Taylor, Peter L. and Bernardeau, Francis and Kitching, Thomas D.}, + journal = {Phys. Rev. D}, + volume = {98}, + issue = {8}, + pages = {083514}, + numpages = {7}, + year = {2018}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevD.98.083514}, + url = {https://link.aps.org/doi/10.1103/PhysRevD.98.083514} +} + +@ARTICLE{bnt, + author = {{Bernardeau}, Francis and {Nishimichi}, Takahiro and {Taruya}, Atsushi}, + title = "{Cosmic shear full nulling: sorting out dynamics, geometry and systematics}", + journal = {\mnras}, + keywords = {gravitational lensing: weak, cosmology: theory, large-scale structure of Universe, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2014, + month = dec, + volume = {445}, + number = {2}, + pages = {1526-1537}, + doi = {10.1093/mnras/stu1861}, +archivePrefix = {arXiv}, + eprint = {1312.0430}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2014MNRAS.445.1526B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@article{xcut, + title = {$x$-cut Cosmic shear: Optimally removing sensitivity to baryonic and nonlinear physics with an application to the Dark Energy Survey year 1 shear data}, + author = {Taylor, Peter L. and Bernardeau, Francis and Huff, Eric}, + journal = {Phys. Rev. D}, + volume = {103}, + issue = {4}, + pages = {043531}, + numpages = {18}, + year = {2021}, + month = {Feb}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevD.103.043531}, + url = {https://link.aps.org/doi/10.1103/PhysRevD.103.043531} +} + + + + +@ARTICLE{sheldonhuff, + author = {{Sheldon}, Erin S. and {Huff}, Eric M.}, + title = "{Practical Weak-lensing Shear Measurement with Metacalibration}", + journal = {\apj}, + keywords = {cosmology: observations, gravitational lensing: weak, methods: observational, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2017, + month = may, + volume = {841}, + number = {1}, + eid = {24}, + pages = {24}, + doi = {10.3847/1538-4357/aa704b}, +archivePrefix = {arXiv}, + eprint = {1702.02601}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2017ApJ...841...24S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{sheldon, + author = {{Sheldon}, Erin S. and {Becker}, Matthew R. and {MacCrann}, Niall and {Jarvis}, Michael}, + title = "{Mitigating Shear-dependent Object Detection Biases with Metacalibration}", + journal = {\apj}, + keywords = {Weak gravitational lensing, 1797, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2020, + month = oct, + volume = {902}, + number = {2}, + eid = {138}, + pages = {138}, + doi = {10.3847/1538-4357/abb595}, +archivePrefix = {arXiv}, + eprint = {1911.02505}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020ApJ...902..138S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{des-y1-cat, + author = {{Zuntz}, J. and {Sheldon}, E. and {Samuroff}, S. and {Troxel}, M.~A. and {Jarvis}, M. and {MacCrann}, N. and {Gruen}, D. and {Prat}, J. and {S{\'a}nchez}, C. and {Choi}, A. and {Bridle}, S.~L. and {Bernstein}, G.~M. and {Dodelson}, S. and {Drlica-Wagner}, A. and {Fang}, Y. and {Gruendl}, R.~A. and {Hoyle}, B. and {Huff}, E.~M. and {Jain}, B. and {Kirk}, D. and {Kacprzak}, T. and {Krawiec}, C. and {Plazas}, A.~A. and {Rollins}, R.~P. and {Rykoff}, E.~S. and {Sevilla-Noarbe}, I. and {Soergel}, B. and {Varga}, T.~N. and {Abbott}, T.~M.~C. and {Abdalla}, F.~B. and {Allam}, S. and {Annis}, J. and {Bechtol}, K. and {Benoit-L{\'e}vy}, A. and {Bertin}, E. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Carretero}, J. and {Castander}, F.~J. and {Crocce}, M. and {Cunha}, C.~E. and {D'Andrea}, C.~B. and {da Costa}, L.~N. and {Davis}, C. and {Desai}, S. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Doel}, P. and {Eifler}, T.~F. and {Estrada}, J. and {Evrard}, A.~E. and {Fausti Neto}, A. and {Fernandez}, E. and {Flaugher}, B. and {Fosalba}, P. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Gschwend}, J. and {Gutierrez}, G. and {Hartley}, W.~G. and {Honscheid}, K. and {James}, D.~J. and {Jeltema}, T. and {Johnson}, M.~W.~G. and {Johnson}, M.~D. and {Kuehn}, K. and {Kuhlmann}, S. and {Kuropatkin}, N. and {Lahav}, O. and {Li}, T.~S. and {Lima}, M. and {Maia}, M.~A.~G. and {March}, M. and {Martini}, P. and {Melchior}, P. and {Menanteau}, F. and {Miller}, C.~J. and {Miquel}, R. and {Mohr}, J.~J. and {Neilsen}, E. and {Nichol}, R.~C. and {Ogando}, R.~L.~C. and {Roe}, N. and {Romer}, A.~K. and {Roodman}, A. and {Sanchez}, E. and {Scarpine}, V. and {Schindler}, R. and {Schubnell}, M. and {Smith}, M. and {Smith}, R.~C. and {Soares-Santos}, M. and {Sobreira}, F. and {Suchyta}, E. and {Swanson}, M.~E.~C. and {Tarle}, G. and {Thomas}, D. and {Tucker}, D.~L. and {Vikram}, V. and {Walker}, A.~R. and {Wechsler}, R.~H. and {Zhang}, Y. and {DES Collaboration}}, + title = "{Dark Energy Survey Year 1 results: weak lensing shape catalogues}", + journal = {\mnras}, + keywords = {gravitational lensing: weak, methods: data analysis, techniques: image processing, catalogues, surveys, cosmology: observations, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = nov, + volume = {481}, + number = {1}, + pages = {1149-1182}, + doi = {10.1093/mnras/sty2219}, +archivePrefix = {arXiv}, + eprint = {1708.01533}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.481.1149Z}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{des-y3-cat, + author = {{Gatti}, M. and {Sheldon}, E. and {Amon}, A. and {Becker}, M. and {Troxel}, M. and {Choi}, A. and {Doux}, C. and {MacCrann}, N. and {Navarro Alsina}, A. and {Harrison}, I. and {Gruen}, D. and {Bernstein}, G. and {Jarvis}, M. and {Secco}, L.~F. and {Fert{\'e}}, A. and {Shin}, T. and {McCullough}, J. and {Rollins}, R.~P. and {Chen}, R. and {Chang}, C. and {Pandey}, S. and {Tutusaus}, I. and {Prat}, J. and {Elvin-Poole}, J. and {Sanchez}, C. and {Plazas}, A.~A. and {Roodman}, A. and {Zuntz}, J. and {Abbott}, T.~M.~C. and {Aguena}, M. and {Allam}, S. and {Annis}, J. and {Avila}, S. and {Bacon}, D. and {Bertin}, E. and {Bhargava}, S. and {Brooks}, D. and {Burke}, D.~L. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Carretero}, J. and {Castander}, F.~J. and {Conselice}, C. and {Costanzi}, M. and {da Costa}, L.~N. and {Davis}, T.~M. and {De Vicente}, J. and {Desai}, S. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Doel}, P. and {Drlica-Wagner}, A. and {Eckert}, K. and {Everett}, S. and {Ferrero}, I. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Gruendl}, R.~A. and {Gschwend}, J. and {Gutierrez}, G. and {Hartley}, W.~G. and {Hinton}, S.~R. and {Hollowood}, D.~L. and {Honscheid}, K. and {Hoyle}, B. and {Huff}, E.~M. and {Huterer}, D. and {Jain}, B. and {James}, D.~J. and {Jeltema}, T. and {Krause}, E. and {Kron}, R. and {Kuropatkin}, N. and {Lima}, M. and {Maia}, M.~A.~G. and {Marshall}, J.~L. and {Miquel}, R. and {Morgan}, R. and {Myles}, J. and {Palmese}, A. and {Paz-Chinch{\'o}n}, F. and {Rykoff}, E.~S. and {Samuroff}, S. and {Sanchez}, E. and {Scarpine}, V. and {Schubnell}, M. and {Serrano}, S. and {Sevilla-Noarbe}, I. and {Smith}, M. and {Suchyta}, E. and {Swanson}, M.~E.~C. and {Tarle}, G. and {Thomas}, D. and {To}, C. and {Tucker}, D.~L. and {Varga}, T.~N. and {Wechsler}, R.~H. and {Weller}, J. and {Wester}, W. and {Wilkinson}, R.~D.}, + title = "{Dark Energy Survey Year 3 Results: Weak Lensing Shape Catalogue}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2020, + month = nov, + eid = {arXiv:2011.03408}, + pages = {arXiv:2011.03408}, +archivePrefix = {arXiv}, + eprint = {2011.03408}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv201103408G}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{cosmodc2, + author = {{Korytov}, Danila and {Hearin}, Andrew and {Kovacs}, Eve and {Larsen}, Patricia and {Rangel}, Esteban and {Hollowed}, Joseph and {Benson}, Andrew J. and {Heitmann}, Katrin and {Mao}, Yao-Yuan and {Bahmanyar}, Anita and {Chang}, Chihway and {Campbell}, Duncan and {DeRose}, Joseph and {Finkel}, Hal and {Frontiere}, Nicholas and {Gawiser}, Eric and {Habib}, Salman and {Joachimi}, Benjamin and {Lanusse}, Fran{\c{c}}ois and {Li}, Nan and {Mandelbaum}, Rachel and {Morrison}, Christopher and {Newman}, Jeffrey A. and {Pope}, Adrian and {Rykoff}, Eli and {Simet}, Melanie and {To}, Chun-Hao and {Vikraman}, Vinu and {Wechsler}, Risa H. and {White}, Martin and {(The LSST Dark Energy Science Collaboration}}, + title = "{CosmoDC2: A Synthetic Sky Catalog for Dark Energy Science with LSST}", + journal = {\apjs}, + keywords = {Galaxies, Cosmology, Large-scale structure of the universe, Dark energy, 573, 343, 902, 351, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Astrophysics of Galaxies}, + year = 2019, + month = dec, + volume = {245}, + number = {2}, + eid = {26}, + pages = {26}, + doi = {10.3847/1538-4365/ab510c}, +archivePrefix = {arXiv}, + eprint = {1907.06530}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019ApJS..245...26K}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{outer_rim, + author = {{Heitmann}, Katrin and {Finkel}, Hal and {Pope}, Adrian and {Morozov}, Vitali and {Frontiere}, Nicholas and {Habib}, Salman and {Rangel}, Esteban and {Uram}, Thomas and {Korytov}, Danila and {Child}, Hillary and {Flender}, Samuel and {Insley}, Joe and {Rizzi}, Silvio}, + title = "{The Outer Rim Simulation: A Path to Many-core Supercomputers}", + journal = {\apjs}, + keywords = {N-body simulations, 1083, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2019, + month = nov, + volume = {245}, + number = {1}, + eid = {16}, + pages = {16}, + doi = {10.3847/1538-4365/ab4da1}, +archivePrefix = {arXiv}, + eprint = {1904.11970}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019ApJS..245...16H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{universe_machine, + author = {{Behroozi}, Peter and {Wechsler}, Risa H. and {Hearin}, Andrew P. and {Conroy}, Charlie}, + title = "{UNIVERSEMACHINE: The correlation between galaxy growth and dark matter halo assembly from z = 0-10}", + journal = {\mnras}, + keywords = {galaxies: formation, galaxies: haloes, Astrophysics - Astrophysics of Galaxies}, + year = 2019, + month = sep, + volume = {488}, + number = {3}, + pages = {3143-3194}, + doi = {10.1093/mnras/stz1182}, +archivePrefix = {arXiv}, + eprint = {1806.07893}, + primaryClass = {astro-ph.GA}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019MNRAS.488.3143B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{galsampler, + author = {{Hearin}, Andrew and {Korytov}, Danila and {Kovacs}, Eve and {Benson}, Andrew and {Aung}, Han and {Bradshaw}, Christopher and {Campbell}, Duncan and {LSST Dark Energy Science Collaboration}}, + title = "{Generating synthetic cosmological data with GalSampler}", + journal = {\mnras}, + keywords = {large-scale structure of Universe, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2020, + month = jul, + volume = {495}, + number = {4}, + pages = {5040-5051}, + doi = {10.1093/mnras/staa1495}, +archivePrefix = {arXiv}, + eprint = {1909.07340}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2020MNRAS.495.5040H}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{galacticus, + author = {{Benson}, Andrew J.}, + title = "{G ALACTICUS: A semi-analytic model of galaxy formation}", + journal = {\na}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Astrophysics of Galaxies}, + year = 2012, + month = feb, + volume = {17}, + number = {2}, + pages = {175-197}, + doi = {10.1016/j.newast.2011.07.004}, +archivePrefix = {arXiv}, + eprint = {1008.1786}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2012NewA...17..175B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{buzzard, + author = {{DeRose}, Joseph and {Wechsler}, Risa H. and {Becker}, Matthew R. and {Busha}, Michael T. and {Rykoff}, Eli S. and {MacCrann}, Niall and {Erickson}, Brandon and {Evrard}, August E. and {Kravtsov}, Andrey and {Gruen}, Daniel and {Allam}, Sahar and {Avila}, Santiago and {Bridle}, Sarah and {Brooks}, David and {Buckley-Geer}, Elizabeth and {Carnero Rosell}, Aurelio and {Carrasco Kind}, Matias and {Carretero}, Jorge and {Castander}, Francisco J. and {Cawthon}, Ross and {Crocce}, Martin and {da Costa}, Luiz N. and {Davis}, Christopher and {De Vicente}, Juan and {Dietrich}, J{\"o}rg P. and {Doel}, Peter and {Drlica-Wagner}, Alex and {Fosalba}, Pablo and {Frieman}, Josh and {Garcia-Bellido}, Juan and {Gutierrez}, Gaston and {Hartley}, Will G. and {Hollowood}, Devon L. and {Hoyle}, Ben and {James}, David J. and {Krause}, Elisabeth and {Kuehn}, Kyler and {Kuropatkin}, Nikolay and {Lima}, Marcos and {Maia}, Marcio A.~G. and {Menanteau}, Felipe and {Miller}, Christopher J. and {Miquel}, Ramon and {Ogando}, Ricardo L.~C. and {Plazas Malag{\'o}n}, Andr{\'e}s and {Romer}, A. Kathy and {Sanchez}, Eusebio and {Schindler}, Rafe and {Serrano}, Santiago and {Sevilla-Noarbe}, Ignacio and {Smith}, Mathew and {Suchyta}, Eric and {Swanson}, Molly E.~C. and {Tarle}, Gregory and {Vikram}, Vinu}, + title = "{The Buzzard Flock: Dark Energy Survey Synthetic Sky Catalogs}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2019, + month = jan, + eid = {arXiv:1901.02401}, + pages = {arXiv:1901.02401}, +archivePrefix = {arXiv}, + eprint = {1901.02401}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190102401D}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{gadget2, + author = {{Springel}, Volker}, + title = "{The cosmological simulation code GADGET-2}", + journal = {\mnras}, + keywords = {methods: numerical, galaxies: interactions, dark matter, Astrophysics}, + year = 2005, + month = dec, + volume = {364}, + number = {4}, + pages = {1105-1134}, + doi = {10.1111/j.1365-2966.2005.09655.x}, +archivePrefix = {arXiv}, + eprint = {astro-ph/0505010}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2005MNRAS.364.1105S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@techreport{ivezic_jones_lupton, + author ={{Ivezic}, Zeljko and {Jones}, Lynne and {Lupton}, Robert}, + title ={The LSST Photon Rates and SNR Calculations, v1.2}, + series ={LSST Document Collection}, + volume ={LSE-40}, + institution={LSST}, + url={http://faculty.washington.edu/ivezic/Teaching/Astr511/LSST_SNRdoc.pdf}, + publisher ={LSST Organization}, + year ={2010} +} + +@ARTICLE{ccl, + author = {{Chisari}, Nora Elisa and {Alonso}, David and {Krause}, Elisabeth and {Leonard}, C. Danielle and {Bull}, Philip and {Neveu}, J{\'e}r{\'e}my and {Villarreal}, Antonio and {Singh}, Sukhdeep and {McClintock}, Thomas and {Ellison}, John and {Du}, Zilong and {Zuntz}, Joe and {Mead}, Alexander and {Joudaki}, Shahab and {Lorenz}, Christiane S. and {Tr{\"o}ster}, Tilman and {Sanchez}, Javier and {Lanusse}, Francois and {Ishak}, Mustapha and {Hlozek}, Ren{\'e}e and {Blazek}, Jonathan and {Campagne}, Jean-Eric and {Almoubayyed}, Husni and {Eifler}, Tim and {Kirby}, Matthew and {Kirkby}, David and {Plaszczynski}, St{\'e}phane and {Slosar}, An{\v{z}}e and {Vrastil}, Michal and {Wagoner}, Erika L. and {LSST Dark Energy Science Collaboration}}, + title = "{Core Cosmology Library: Precision Cosmological Predictions for LSST}", + journal = {\apjs}, + keywords = {cosmology: theory, dark energy, large-scale structure of universe, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics}, + year = 2019, + month = may, + volume = {242}, + number = {1}, + eid = {2}, + pages = {2}, + doi = {10.3847/1538-4365/ab1658}, +archivePrefix = {arXiv}, + eprint = {1812.05995}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2019ApJS..242....2C}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{jax-cosmo, + author = {{Lanusse}, Francois and others}, + title = "{jax-cosmo: End-to-End Differentiable and GPU Accelerated Cosmology Library}", + journal = {In prep.}, + year = 2021, +} + + +@misc{jax, + author = {James Bradbury and Roy Frostig and Peter Hawkins and Matthew James Johnson and Chris Leary and Dougal Maclaurin and George Necula and Adam Paszke and Jake Vander{P}las and Skye Wanderman-{M}ilne and Qiao Zhang}, + title = {{JAX}: composable transformations of {P}ython+{N}um{P}y programs}, + url = {http://github.com/google/jax}, + version = {0.1.77}, + year = {2018}, +} + +@ARTICLE{detf, + author = {{Albrecht}, Andreas and {Bernstein}, Gary and {Cahn}, Robert and {Freedman}, Wendy L. and {Hewitt}, Jacqueline and {Hu}, Wayne and {Huth}, John and {Kamionkowski}, Marc and {Kolb}, Edward W. and {Knox}, Lloyd and {Mather}, John C. and {Staggs}, Suzanne and {Suntzeff}, Nicholas B.}, + title = "{Report of the Dark Energy Task Force}", + journal = {arXiv e-prints}, + keywords = {Astrophysics}, + year = 2006, + month = sep, + eid = {astro-ph/0609591}, + pages = {astro-ph/0609591}, +archivePrefix = {arXiv}, + eprint = {astro-ph/0609591}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2006astro.ph..9591A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@inproceedings{autokeras, + title={Auto-Keras: An Efficient Neural Architecture Search System}, + author={Jin, Haifeng and Song, Qingquan and Hu, Xia}, + booktitle={Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining}, + pages={1946--1956}, + year={2019}, + organization={ACM} +} + +@INPROCEEDINGS{resnet, + author={K. {He} and X. {Zhang} and S. {Ren} and J. {Sun}}, + booktitle={2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, + title={Deep Residual Learning for Image Recognition}, + year={2016}, + volume={}, + number={}, + pages={770-778}, + doi={10.1109/CVPR.2016.90} +} + + +@ARTICLE{adam, + author = {{Kingma}, Diederik P. and {Ba}, Jimmy}, + title = "{Adam: A Method for Stochastic Optimization}", + journal = {arXiv e-prints}, + keywords = {Computer Science - Machine Learning}, + year = 2014, + month = dec, + eid = {arXiv:1412.6980}, + pages = {arXiv:1412.6980}, +archivePrefix = {arXiv}, + eprint = {1412.6980}, + primaryClass = {cs.LG}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2014arXiv1412.6980K}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{takada_jain, + author = {{Takada}, Masahiro and {Jain}, Bhuvnesh}, + title = "{Cosmological parameters from lensing power spectrum and bispectrum tomography}", + journal = {\mnras}, + keywords = {gravitational lensing, cosmology: theory, dark matter, large-scale structure of Universe, Astrophysics}, + year = 2004, + month = mar, + volume = {348}, + number = {3}, + pages = {897-915}, + doi = {10.1111/j.1365-2966.2004.07410.x}, +archivePrefix = {arXiv}, + eprint = {astro-ph/0310125}, + primaryClass = {astro-ph}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2004MNRAS.348..897T}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@book{rosenblatt1961, + author = {{Rosenblatt}, Frank}, + publisher = {Springer, Berlin, Heidelberg}, + title = {Principles of Neurodynamics: Perceptrons and the Theory of Brain Mechanisms}, + year = 1961 +} + + +@article{dc1_pz, + author = {Schmidt, S J and Malz, A I and Soo, J Y H and Almosallam, I A and Brescia, M and Cavuoti, S and Cohen-Tanugi, J and Connolly, A J and DeRose, J and Freeman, P E and Graham, M L and Iyer, K G and Jarvis, M J and Kalmbach, J B and Kovacs, E and Lee, A B and Longo, G and Morrison, C B and Newman, J A and Nourbakhsh, E and Nuss, E and Pospisil, T and Tranin, H and Wechsler, R H and Zhou, R and Izbicki, R and (The LSST Dark Energy Science Collaboration) }, + title = "{Evaluation of probabilistic photometric redshift estimation approaches for The Rubin Observatory Legacy Survey of Space and Time (LSST)}", + journal = {Monthly Notices of the Royal Astronomical Society}, + volume = {499}, + number = {2}, + pages = {1587-1606}, + year = {2020}, + month = {09}, + abstract = "{Many scientific investigations of photometric galaxy surveys require redshift estimates, whose uncertainty properties are best encapsulated by photometric redshift (photo-z) posterior probability density functions (PDFs). A plethora of photo-z PDF estimation methodologies abound, producing discrepant results with no consensus on a preferred approach. We present the results of a comprehensive experiment comparing 12 photo-z algorithms applied to mock data produced for The Rubin Observatory Legacy Survey of Space and Time Dark Energy Science Collaboration. By supplying perfect prior information, in the form of the complete template library and a representative training set as inputs to each code, we demonstrate the impact of the assumptions underlying each technique on the output photo-z PDFs. In the absence of a notion of true, unbiased photo-z PDFs, we evaluate and interpret multiple metrics of the ensemble properties of the derived photo-z PDFs as well as traditional reductions to photo-z point estimates. We report systematic biases and overall over/underbreadth of the photo-z PDFs of many popular codes, which may indicate avenues for improvement in the algorithms or implementations. Furthermore, we raise attention to the limitations of established metrics for assessing photo-z PDF accuracy; though we identify the conditional density estimate loss as a promising metric of photo-z PDF performance in the case where true redshifts are available but true photo-z PDFs are not, we emphasize the need for science-specific performance metrics.}", + issn = {0035-8711}, + doi = {10.1093/mnras/staa2799}, + url = {https://doi.org/10.1093/mnras/staa2799}, + eprint = {https://academic.oup.com/mnras/article-pdf/499/2/1587/33890975/staa2799.pdf}, +} + + + +@ARTICLE{kids_2df, + author = {{Joudaki}, Shahab and {Blake}, Chris and {Johnson}, Andrew and {Amon}, Alexandra and {Asgari}, Marika and {Choi}, Ami and {Erben}, Thomas and {Glazebrook}, Karl and {Harnois-D{\'e}raps}, Joachim and {Heymans}, Catherine and {Hildebrandt}, Hendrik and {Hoekstra}, Henk and {Klaes}, Dominik and {Kuijken}, Konrad and {Lidman}, Chris and {Mead}, Alexander and {Miller}, Lance and {Parkinson}, David and {Poole}, Gregory B. and {Schneider}, Peter and {Viola}, Massimo and {Wolf}, Christian}, + title = "{KiDS-450 + 2dFLenS: Cosmological parameter constraints from weak gravitational lensing tomography and overlapping redshift-space galaxy clustering}", + journal = {\mnras}, + keywords = {surveys, large-scale structure of Universe, cosmology: observations, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = mar, + volume = {474}, + number = {4}, + pages = {4894-4924}, + doi = {10.1093/mnras/stx2820}, +archivePrefix = {arXiv}, + eprint = {1707.06627}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.474.4894J}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + +@ARTICLE{kids_gama, + author = {{van Uitert}, Edo and {Joachimi}, Benjamin and {Joudaki}, Shahab and {Amon}, Alexandra and {Heymans}, Catherine and {K{\"o}hlinger}, Fabian and {Asgari}, Marika and {Blake}, Chris and {Choi}, Ami and {Erben}, Thomas and {Farrow}, Daniel J. and {Harnois-D{\'e}raps}, Joachim and {Hildebrandt}, Hendrik and {Hoekstra}, Henk and {Kitching}, Thomas D. and {Klaes}, Dominik and {Kuijken}, Konrad and {Merten}, Julian and {Miller}, Lance and {Nakajima}, Reiko and {Schneider}, Peter and {Valentijn}, Edwin and {Viola}, Massimo}, + title = "{KiDS+GAMA: cosmology constraints from a joint analysis of cosmic shear, galaxy-galaxy lensing, and angular clustering}", + journal = {\mnras}, + keywords = {methods: data analysis, methods: statistical, large-scale structure of Universe, Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2018, + month = jun, + volume = {476}, + number = {4}, + pages = {4662-4689}, + doi = {10.1093/mnras/sty551}, +archivePrefix = {arXiv}, + eprint = {1706.05004}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2018MNRAS.476.4662V}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{broussard_gawiser, + author = {{Broussard}, Adam and {Gawiser}, Eric}, + title = "{Using a Neural Network Classifier to Select Galaxies with the Most Accurate Photometric Redshifts}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = aug, + eid = {arXiv:2108.13260}, + pages = {arXiv:2108.13260}, +archivePrefix = {arXiv}, + eprint = {2108.13260}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210813260B}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{desy3a, + author = {{Amon}, A. and {Gruen}, D. and {Troxel}, M.~A. and {MacCrann}, N. and {Dodelson}, S. and {Choi}, A. and {Doux}, C. and {Secco}, L.~F. and {Samuroff}, S. and {Krause}, E. and {Cordero}, J. and {Myles}, J. and {DeRose}, J. and {Wechsler}, R.~H. and {Gatti}, M. and {Navarro-Alsina}, A. and {Bernstein}, G.~M. and {Jain}, B. and {Blazek}, J. and {Alarcon}, A. and {Fert{\'e}}, A. and {Raveri}, M. and {Lemos}, P. and {Campos}, A. and {Prat}, J. and {S{\'a}nchez}, C. and {Jarvis}, M. and {Alves}, O. and {Andrade-Oliveira}, F. and {Baxter}, E. and {Bechtol}, K. and {Becker}, M.~R. and {Bridle}, S.~L. and {Camacho}, H. and {Campos}, A. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Cawthon}, R. and {Chang}, C. and {Chen}, R. and {Chintalapati}, P. and {Crocce}, M. and {Davis}, C. and {Diehl}, H.~T. and {Drlica-Wagner}, A. and {Eckert}, K. and {Eifler}, T.~F. and {Elvin-Poole}, J. and {Everett}, S. and {Fang}, X. and {Fosalba}, P. and {Friedrich}, O. and {Giannini}, G. and {Gruendl}, R.~A. and {Harrison}, I. and {Hartley}, W.~G. and {Herner}, K. and {Huang}, H. and {Huff}, E.~M. and {Huterer}, D. and {Kuropatkin}, N. and {Leget}, P. -F. and {Liddle}, A.~R. and {McCullough}, J. and {Muir}, J. and {Pandey}, S. and {Park}, Y. and {Porredon}, A. and {Refregier}, A. and {Rollins}, R.~P. and {Roodman}, A. and {Rosenfeld}, R. and {Ross}, A.~J. and {Rykoff}, E.~S. and {Sanchez}, J. and {Sevilla-Noarbe}, I. and {Sheldon}, E. and {Shin}, T. and {Troja}, A. and {Tutusaus}, I. and {Varga}, T.~N. and {Weaverdyck}, N. and {Yanny}, B. and {Yin}, B. and {Zhang}, Y. and {Zuntz}, J. and {Aguena}, M. and {Allam}, S. and {Annis}, J. and {Bacon}, D. and {Bertin}, E. and {Bhargava}, S. and {Brooks}, D. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Carretero}, J. and {Costanzi}, M. and {da Costa}, L.~N. and {Pereira}, M.~E.~S. and {De Vicente}, J. and {Desai}, S. and {Dietrich}, J.~P. and {Doel}, P. and {Ferrero}, I. and {Flaugher}, B. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Gschwend}, J. and {Gutierrez}, G. and {Hinton}, S.~R. and {Hollowood}, D.~L. and {Honscheid}, K. and {Hoyle}, B. and {James}, D.~J. and {Kron}, R. and {Kuehn}, K. and {Lahav}, O. and {Lima}, M. and {Lin}, H. and {Maia}, M.~A.~G. and {Marshall}, J.~L. and {Martini}, P. and {Melchior}, P. and {Menanteau}, F. and {Miquel}, R. and {Mohr}, J.~J. and {Morgan}, R. and {Ogando}, R.~L.~C. and {Palmese}, A. and {Paz-Chinch{\'o}n}, F. and {Petravick}, D. and {Pieres}, A. and {Plazas Malag{\'o}n}, A.~A. and {Romer}, A.~K. and {Sanchez}, E. and {Scarpine}, V. and {Schubnell}, M. and {Serrano}, S. and {Smith}, M. and {Soares-Santos}, M. and {Suchyta}, E. and {Tarle}, G. and {Thomas}, D. and {To}, C. and {Weller}, J.}, + title = "{Dark Energy Survey Year 3 Results: Cosmology from Cosmic Shear and Robustness to Data Calibration}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = may, + eid = {arXiv:2105.13543}, + pages = {arXiv:2105.13543}, +archivePrefix = {arXiv}, + eprint = {2105.13543}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210513543A}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{desy3b, + author = {{Secco}, L.~F. and {Samuroff}, S. and {Krause}, E. and {Jain}, B. and {Blazek}, J. and {Raveri}, M. and {Campos}, A. and {Amon}, A. and {Chen}, A. and {Doux}, C. and {Choi}, A. and {Gruen}, D. and {Bernstein}, G.~M. and {Chang}, C. and {DeRose}, J. and {Myles}, J. and {Fert{\'e}}, A. and {Lemos}, P. and {Huterer}, D. and {Prat}, J. and {Troxel}, M.~A. and {MacCrann}, N. and {Liddle}, A.~R. and {Kacprzak}, T. and {Fang}, X. and {S{\'a}nchez}, C. and {Pandey}, S. and {Dodelson}, S. and {Chintalapati}, P. and {Hoffmann}, K. and {Alarcon}, A. and {Alves}, O. and {Andrade-Oliveira}, F. and {Baxter}, E.~J. and {Bechtol}, K. and {Becker}, M.~R. and {Brandao-Souza}, A. and {Camacho}, H. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Cawthon}, R. and {Cordero}, J.~P. and {Crocce}, M. and {Davis}, C. and {Di Valentino}, E. and {Drlica-Wagner}, A. and {Eckert}, K. and {Eifler}, T.~F. and {Elidaiana}, M. and {Elsner}, F. and {Elvin-Poole}, J. and {Everett}, S. and {Fosalba}, P. and {Friedrich}, O. and {Gatti}, M. and {Giannini}, G. and {Gruendl}, R.~A. and {Harrison}, I. and {Hartley}, W.~G. and {Herner}, K. and {Huang}, H. and {Huff}, E.~M. and {Jarvis}, M. and {Jeffrey}, N. and {Kuropatkin}, N. and {Leget}, P. -F. and {Muir}, J. and {Mccullough}, J. and {Navarro Alsina}, A. and {Omori}, Y. and {Park}, Y. and {Porredon}, A. and {Rollins}, R. and {Roodman}, A. and {Rosenfeld}, R. and {Ross}, A.~J. and {Rykoff}, E.~S. and {Sanchez}, J. and {Sevilla-Noarbe}, I. and {Sheldon}, E.~S. and {Shin}, T. and {Tutusaus}, I. and {Varga}, T.~N. and {Weaverdyck}, N. and {Wechsler}, R.~H. and {Yanny}, B. and {Yin}, B. and {Zhang}, Y. and {Zuntz}, J. and {Abbott}, T.~M.~C. and {Aguena}, M. and {Allam}, S. and {Annis}, J. and {Bacon}, D. and {Bertin}, E. and {Bhargava}, S. and {Bridle}, S.~L. and {Brooks}, D. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Carretero}, J. and {Costanzi}, M. and {da Costa}, L.~N. and {De Vicente}, J. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Doel}, P. and {Ferrero}, I. and {Flaugher}, B. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Gschwend}, J. and {Gutierrez}, G. and {Hinton}, S.~R. and {Hollowood}, D.~L. and {Honscheid}, K. and {Hoyle}, B. and {James}, D.~J. and {Jeltema}, T. and {Kuehn}, K. and {Lahav}, O. and {Lima}, M. and {Lin}, H. and {Maia}, M.~A.~G. and {Marshall}, J.~L. and {Martini}, P. and {Melchior}, P. and {Menanteau}, F. and {Miquel}, R. and {Mohr}, J.~J. and {Morgan}, R. and {Ogando}, R.~L.~C. and {Palmese}, A. and {Paz-Chinch{\'o}n}, F. and {Petravick}, D. and {Pieres}, A. and {Plazas Malag{\'o}n}, A.~A. and {Rodriguez-Monroy}, M. and {Romer}, A.~K. and {Sanchez}, E. and {Scarpine}, V. and {Schubnell}, M. and {Scolnic}, D. and {Serrano}, S. and {Smith}, M. and {Soares-Santos}, M. and {Suchyta}, E. and {Swanson}, M.~E.~C. and {Tarle}, G. and {Thomas}, D. and {To}, C.}, + title = "{Dark Energy Survey Year 3 Results: Cosmology from Cosmic Shear and Robustness to Modeling Uncertainty}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = may, + eid = {arXiv:2105.13544}, + pages = {arXiv:2105.13544}, +archivePrefix = {arXiv}, + eprint = {2105.13544}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210513544S}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + +@ARTICLE{desy3-3x2pt, + author = {{DES Collaboration} and {Abbott}, T.~M.~C. and {Aguena}, M. and {Alarcon}, A. and {Allam}, S. and {Alves}, O. and {Amon}, A. and {Andrade-Oliveira}, F. and {Annis}, J. and {Avila}, S. and {Bacon}, D. and {Baxter}, E. and {Bechtol}, K. and {Becker}, M.~R. and {Bernstein}, G.~M. and {Bhargava}, S. and {Birrer}, S. and {Blazek}, J. and {Brandao-Souza}, A. and {Bridle}, S.~L. and {Brooks}, D. and {Buckley-Geer}, E. and {Burke}, D.~L. and {Camacho}, H. and {Campos}, A. and {Carnero Rosell}, A. and {Carrasco Kind}, M. and {Carretero}, J. and {Castander}, F.~J. and {Cawthon}, R. and {Chang}, C. and {Chen}, A. and {Chen}, R. and {Choi}, A. and {Conselice}, C. and {Cordero}, J. and {Costanzi}, M. and {Crocce}, M. and {da Costa}, L.~N. and {da Silva Pereira}, M.~E. and {Davis}, C. and {Davis}, T.~M. and {De Vicente}, J. and {DeRose}, J. and {Desai}, S. and {Di Valentino}, E. and {Diehl}, H.~T. and {Dietrich}, J.~P. and {Dodelson}, S. and {Doel}, P. and {Doux}, C. and {Drlica-Wagner}, A. and {Eckert}, K. and {Eifler}, T.~F. and {Elsner}, F. and {Elvin-Poole}, J. and {Everett}, S. and {Evrard}, A.~E. and {Fang}, X. and {Farahi}, A. and {Fernandez}, E. and {Ferrero}, I. and {Fert{\'e}}, A. and {Fosalba}, P. and {Friedrich}, O. and {Frieman}, J. and {Garc{\'\i}a-Bellido}, J. and {Gatti}, M. and {Gaztanaga}, E. and {Gerdes}, D.~W. and {Giannantonio}, T. and {Giannini}, G. and {Gruen}, D. and {Gruendl}, R.~A. and {Gschwend}, J. and {Gutierrez}, G. and {Harrison}, I. and {Hartley}, W.~G. and {Herner}, K. and {Hinton}, S.~R. and {Hollowood}, D.~L. and {Honscheid}, K. and {Hoyle}, B. and {Huff}, E.~M. and {Huterer}, D. and {Jain}, B. and {James}, D.~J. and {Jarvis}, M. and {Jeffrey}, N. and {Jeltema}, T. and {Kovacs}, A. and {Krause}, E. and {Kron}, R. and {Kuehn}, K. and {Kuropatkin}, N. and {Lahav}, O. and {Leget}, P. -F. and {Lemos}, P. and {Liddle}, A.~R. and {Lidman}, C. and {Lima}, M. and {Lin}, H. and {MacCrann}, N. and {Maia}, M.~A.~G. and {Marshall}, J.~L. and {Martini}, P. and {McCullough}, J. and {Melchior}, P. and {Mena-Fern{\'a}ndez}, J. and {Menanteau}, F. and {Miquel}, R. and {Mohr}, J.~J. and {Morgan}, R. and {Muir}, J. and {Myles}, J. and {Nadathur}, S. and {Navarro-Alsina}, A. and {Nichol}, R.~C. and {Ogando}, R.~L.~C. and {Omori}, Y. and {Palmese}, A. and {Pandey}, S. and {Park}, Y. and {Paz-Chinch{\'o}n}, F. and {Petravick}, D. and {Pieres}, A. and {Plazas Malag{\'o}n}, A.~A. and {Porredon}, A. and {Prat}, J. and {Raveri}, M. and {Rodriguez-Monroy}, M. and {Rollins}, R.~P. and {Romer}, A.~K. and {Roodman}, A. and {Rosenfeld}, R. and {Ross}, A.~J. and {Rykoff}, E.~S. and {Samuroff}, S. and {S{\'a}nchez}, C. and {Sanchez}, E. and {Sanchez}, J. and {Sanchez Cid}, D. and {Scarpine}, V. and {Schubnell}, M. and {Scolnic}, D. and {Secco}, L.~F. and {Serrano}, S. and {Sevilla-Noarbe}, I. and {Sheldon}, E. and {Shin}, T. and {Smith}, M. and {Soares-Santos}, M. and {Suchyta}, E. and {Swanson}, M.~E.~C. and {Tabbutt}, M. and {Tarle}, G. and {Thomas}, D. and {To}, C. and {Troja}, A. and {Troxel}, M.~A. and {Tucker}, D.~L. and {Tutusaus}, I. and {Varga}, T.~N. and {Walker}, A.~R. and {Weaverdyck}, N. and {Weller}, J. and {Yanny}, B. and {Yin}, B. and {Zhang}, Y. and {Zuntz}, J.}, + title = "{Dark Energy Survey Year 3 Results: Cosmological Constraints from Galaxy Clustering and Weak Lensing}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = may, + eid = {arXiv:2105.13549}, + pages = {arXiv:2105.13549}, +archivePrefix = {arXiv}, + eprint = {2105.13549}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210513549D}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + + + +@ARTICLE{euclid-nz, + author = {{Euclid Collaboration} and {Pocino}, A. and {Tutusaus}, I. and {Castander}, F.~J. and {Fosalba}, P. and {Crocce}, M. and {Porredon}, A. and {Camera}, S. and {Cardone}, V. and {Casas}, S. and {Kitching}, T. and {Lacasa}, F. and {Martinelli}, M. and {Pourtsidou}, A. and {Sakr}, Z. and {Andreon}, S. and {Auricchio}, N. and {Baccigalupi}, C. and {Balaguera-Antol{\'\i}nez}, A. and {Baldi}, M. and {Balestra}, A. and {Bardelli}, S. and {Bender}, R. and {Biviano}, A. and {Bodendorf}, C. and {Bonino}, D. and {Boucaud}, A. and {Bozzo}, E. and {Branchini}, E. and {Brescia}, M. and {Brinchmann}, J. and {Burigana}, C. and {Cabanac}, R. and {Capobianco}, V. and {Cappi}, A. and {Carvalho}, C.~S. and {Castellano}, M. and {Castignani}, G. and {Cavuoti}, S. and {Cimatti}, A. and {Cledassou}, R. and {Colodro-Conde}, C. and {Congedo}, G. and {Conselice}, C.~J. and {Conversi}, L. and {Copin}, Y. and {Corcione}, L. and {Costille}, A. and {Coupon}, J. and {Courtois}, H.~M. and {Cropper}, M. and {Cuby}, J. -G. and {Da Silva}, A. and {de la Torre}, S. and {Di Ferdinando}, D. and {Dubath}, F. and {Duncan}, C. and {Dupac}, X. and {Dusini}, S. and {Farrens}, S. and {Ferreira}, P.~G. and {Ferrero}, I. and {Finelli}, F. and {Fotopoulou}, S. and {Frailis}, M. and {Franceschi}, E. and {Galeotta}, S. and {Garilli}, B. and {Gillard}, W. and {Gillis}, B. and {Giocoli}, C. and {Gozaliasl}, G. and {Graci{\'a}-Carpio}, J. and {Grupp}, F. and {Guzzo}, L. and {Holmes}, W. and {Hormuth}, F. and {Jahnke}, K. and {Keihanen}, E. and {Kermiche}, S. and {Kiessling}, A. and {Kirkpatrick}, C.~C. and {Kunz}, M. and {Kurki-Suonio}, H. and {Ligori}, S. and {Lilje}, P.~B. and {Lloro}, I. and {Maino}, D. and {Maiorano}, E. and {Mansutti}, O. and {Marggraf}, O. and {Martinet}, N. and {Marulli}, F. and {Massey}, R. and {Maurogordato}, S. and {Medinaceli}, E. and {Mei}, S. and {Meneghetti}, M. and {Metcalf}, R. Benton and {Meylan}, G. and {Moresco}, M. and {Morin}, B. and {Moscardini}, L. and {Munari}, E. and {Nakajima}, R. and {Neissner}, C. and {Nichol}, R.~C. and {Niemi}, S. and {Nightingale}, J. and {Padilla}, C. and {Paltani}, S. and {Pasian}, F. and {Patrizii}, L. and {Pedersen}, K. and {Percival}, W.~J. and {Pettorino}, V. and {Pires}, S. and {Polenta}, G. and {Poncet}, M. and {Popa}, L. and {Potter}, D. and {Pozzetti}, L. and {Raison}, F. and {Renzi}, A. and {Rhodes}, J. and {Riccio}, G. and {Romelli}, E. and {Roncarelli}, M. and {Rossetti}, E. and {Saglia}, R. and {S{\'a}nchez}, A.~G. and {Sapone}, D. and {Scaramella}, R. and {Schneider}, P. and {Scottez}, V. and {Secroun}, A. and {Seidel}, G. and {Serrano}, S. and {Sirignano}, C. and {Sirri}, G. and {Stanco}, L. and {Sureau}, F. and {Taylor}, A.~N. and {Tenti}, M. and {Tereno}, I. and {Teyssier}, R. and {Toledo-Moreo}, R. and {Tramacere}, A. and {Valentijn}, E.~A. and {Valenziano}, L. and {Valiviita}, J. and {Vassallo}, T. and {Viel}, M. and {Wang}, Y. and {Welikala}, N. and {Whittaker}, L. and {Zacchei}, A. and {Zamorani}, G. and {Zoubian}, J. and {Zucca}, E.}, + title = "{Euclid preparation: XII. Optimizing the photometric sample of the Euclid survey for galaxy clustering and galaxy-galaxy lensing analyses}", + journal = {arXiv e-prints}, + keywords = {Astrophysics - Cosmology and Nongalactic Astrophysics}, + year = 2021, + month = apr, + eid = {arXiv:2104.05698}, + pages = {arXiv:2104.05698}, +archivePrefix = {arXiv}, + eprint = {2104.05698}, + primaryClass = {astro-ph.CO}, + adsurl = {https://ui.adsabs.harvard.edu/abs/2021arXiv210405698E}, + adsnote = {Provided by the SAO/NASA Astrophysics Data System} +} + diff --git a/paper/paper.tex b/paper/paper.tex new file mode 100644 index 00000000..6c7ca38b --- /dev/null +++ b/paper/paper.tex @@ -0,0 +1,1609 @@ +\RequirePackage{rotating} +\PassOptionsToPackage{usenames,dvipsnames}{xcolour} +\documentclass[twocolumn,twocolappendix]{openjournal} + +% Add your own macros here: +\pdfoutput=1 %for arXiv submission +%\usepackage{amsmath,amssymb,amstext} +\usepackage{amsmath,amstext} +\usepackage[T1]{fontenc} +\usepackage{apjfonts} +\usepackage{ae,aecompl} +\usepackage[utf8]{inputenc} +\usepackage{hyperref} +\usepackage[figure,figure*]{hypcap} +\usepackage{natbib} +\usepackage{url} +\usepackage{mdwlist} +\usepackage{listings} +\usepackage{rotating} +\usepackage{multirow} +\urlstyle{same} + +\usepackage{lineno} +% \linenumbers +%\modulolinenumbers[2] + +\newcommand{\placeholder}[1]{\textit{PLACEHOLDER: #1}} + + +% header settings +\shorttitle{DESC Tomography Challenge} +\shortauthors{Zuntz et al.\ (LSST~DESC)} + +% ====================================================================== + +\begin{document} +\title{The LSST-DESC 3x2pt Tomography Optimization Challenge} +\input{authors2} +\footnote{Author affiliations may be found before the references.} + +\begin{abstract} +This paper presents the results of the Rubin Observatory Dark Energy Science Collaboration (DESC) 3x2pt tomography challenge, which served as a first step toward optimizing the tomographic binning strategy for the main DESC analysis. +The task of choosing an optimal tomographic binning scheme for a photometric survey is made particularly delicate in the context of a metacalibrated lensing catalogue, as only the photometry from the bands included in the metacalibration process (usually {\em riz} and potentially {\em g}) can be used in sample definition. +The goal of the challenge was to collect and compare bin assignment strategies under various metrics of a standard 3x2pt cosmology analysis in a highly idealized setting to establish a baseline for realistically complex follow-up studies; +in this preliminary study, we used two sets of cosmological simulations of galaxy redshifts and photometry under a simple noise model neglecting photometric outliers and variation in observing conditions, and contributed algorithms were provided with a representative and complete training set. +We review and evaluate the entries to the challenge, finding that even from this limited photometry information, multiple algorithms can separate tomographic bins reasonably well, reaching figures-of-merit scores close to the attainable maximum. +We further find that adding the \emph{g} band to \emph{riz} photometry improves metric performance by $\sim15\%$ and that the optimal bin assignment strategy depends strongly on the science case: which figure-of-merit is to be optimized, and which observables (clustering, lensing, or both) are included. +\end{abstract} + +\keywords{methods: statistical -- dark energy -- large-scale structure of the universe} + + +%\tableofcontents%----------------------------- +%=========================== +% BEGINNING OF THE MAIN TEXT +%=========================== + +\section{Introduction} +Weak gravitational lensing (WL) has emerged over the last decade as a powerful +cosmological probe \citep{cfhtlens,rcslens,desy3a,desy3b,kids,hsc}. WL +uses measurements of coherent shear distortion to the observed shapes of galaxies +to track the evolution of large-scale gravitational fields. It measures the integrated +gravitational potential along lines of sight to source galaxies, and can thence constrain +the laws of gravity, the expansion history of the Universe, and the history and growth +of cosmic structure. + +WL has proven especially powerful in combination with galaxy clustering measurements, +which can measure the density of matter up to an unknown bias function. The high signal +to noise of such measurements and the relative certainty of the redshift of these foreground +samples breaks degeneracies in the systematic errors that affect WL. + +The \emph{3$\times$2pt} method has become a standard tool for performing this combination. +In this method, two-point correlations are computed among and between two samples, the shapes of +background (source) galaxies and the locations of foreground (lens) galaxies, which trace foreground +dark matter haloes. The three combinations (source-source, source-lens, and lens-lens) are +measured in either Fourier or configuration space, and can be predicted from a combination of +perturbation theory and simulation results. The method has been used in the Dark Energy Survey, DES, +\citep{des-3x2pt, desy3-3x2pt}, and to combine the Kilo-Degree +Survey, KiDS with spectroscopic surveys \citep{kids-3x2pt, kids_gama, kids_2df}. + +Most lensing and 3x2pt analyses have chosen to analyze data \emph{tomographically}, +binning galaxies by redshift. +This approach captures almost all the available information in lensing data, since lensing measures +an integrated effect and so galaxies nearby in redshift probe very similar fields. For photometric +foreground samples, tomography also loses little information when reasonably narrow bins are used, +since redshift estimates of such galaxies have +large uncertainties\footnote{Spectroscopic foreground samples may be more likely to see significant +gains from moving beyond tomographic methods.}. Binning galaxies by approximate redshift also lets us +model galaxy bias, intrinsic alignments, and other systematic errors en masse in a more tractable way. +While fully 3D methods have been proposed, prototyped, and shown to have significant promise, +\citep{heavens,kitching}, the tomographic approach remains the standard within the field. +Tomographic 3x2pt measurements will be a key science goal in the upcoming \emph{Stage IV} surveys, +including the Vera C. Rubin Observatory \citep{rubin} and the Euclid and Roman space telescopes +\citep{euclid,roman}. + +We are free to assign galaxies to different tomographic bins in any way we wish; changing the choice +can potentially affect the ease with which we can calibrate +the bins, but any choice can lead to correct cosmology results. The bins need not even be assigned contiguous redshift ranges: we can happily correlate bins with multiple redshifts if that is useful, or by some other galaxy property than redshift entirely. +We should choose, then, an assignment algorithm that maximises the constraining power for a science +case of interest. This challenge explores such algorithms. + +Various recent work have explored general tomographic binning strategies. The general question of optimization +was recently discussed in detail +in \citet{rainbow} using a self-organizing map (SOM) approach to target up to five tomographic bins. For this +configuration they find that equally spaced redshift bins are a good proxy +for an optimized method, but note, importantly, that we should not be constrained to trying to directly +match our bin selections to specific tomographic bin edges. +They also highlight the utility of rejecting outlier or hard-to-classify objects from samples, and the ability of SOMs +to do so cleanly. +\citet{taylor18} considered using +fine tomographic bins as an alternative to fully 3D lensing, and found that the strategy of equal numbers +per bin is less effective at high redshift, a result we will echo in this paper. The fine-binning strategy +also allows a set of nulling methods to be applied, offering various advantages in avoiding poorly-understood +regimes \citep{taylor18b,bnt,xcut}. +Most recently, \citet{euclid-nz} studied this question with respect to the Euclid mission, using the \textit{Flagship} +simulation and applying realistic photometric redshift estimation methods to the +sample (we defer the latter in this work). They highlight the power of using large numbers of bins, +differences in ideal binnings when +changing the choice of data (the inclusion galaxy galaxy-lensing), and +note the value in discarding galaxies with high redshift uncertainty. We will echo many of these issues below. + +This paper is part of preparations for the analysis to be run by the Dark Energy Science Collaboration (DESC) of Legacy Survey of Space and Time (LSST) data from the Rubin Observatory. +In it, we discuss and evaluate the related challenge +of using a limited set of colour bands to make those assignments, motivated by requirements of using the +metacalibration method for galaxy shape measurement to limit biases. +A similar question, with different motivations, was explored in \citet{jain}, who found that 3-band +$gri$ tomography could be effective for tomographic selection, a result we will echo here in a new context: in this paper we describe the results of a +challenge using simulated Rubin-like data with a range of methods submitted by different teams. We explore how many tomographic bins we can effectively generate using only a subset of bands, and compare methods submitted to the challenge. + +In \autoref{sec:motivation} we explain the need for methods that work on limited sets of bands in the context of upcoming lensing surveys. In \autoref{sec:design} we describe the design of the challenge and the simulated data used in it. +Section \ref{sec:results} briefly describes the entrants to the challenge, and discusses their performance (full +method details are given in appendix \ref{app:methods}). + We conclude in \autoref{sec:conclusion}. + +\section{Motivation} +\label{sec:motivation} + +The methodology used to assign galaxies to bins faces special challenges when we use a particularly +effective approach for measuring galaxy shear, called \emph{metacalibration} (metacal), +which was introduced in \citet{sheldonhuff} and developed further in \citet{sheldon}. +In metacal, galaxy images are deconvolved from the point-spread function (PSF), sheared, and +reconvolved before measurement, allowing one to directly compute the response of a metric +to underlying shear and correct for it when computing two-point measurements. This can +almost completely remove errors due to model and estimator (noise) bias from WL data, at least +when PSFs are well-measured and oversampled by the pixel grid. The method has been successfully +applied in the DES Year 1 and Year 3 analyses \citep{des-y1-cat, des-y3-cat}, +and application to early Rubin data is planned. + +Furthermore, metacal provides a solution to the pernicious and general problem of +\emph{selection biases} in WL. Measurements of galaxy shear are known to have noise-induced errors +that are +highly covariant with those on other galaxy properties, including size and, most importantly, flux and +magnitude. It follows that a cut (or re-weighting) on galaxy magnitudes, or on any quantity derived +from them, will induce a shear bias since galaxies will preferentially fall on either side of the cut +depending on their shear. Within metacal, we can compute and thus account for this bias +very accurately, by performing the cut on both +sheared variants of the catalogue, and measuring the difference between the post-cut shear in the two +variants. In DES the corrected biases were found up to around 4\%, far larger than +the requirements for the current generation of surveys \citep{des-y1-cat}. + +In summary: metacal allows us to correct for significant selection biases, but only if all selections +are performed using only bands in which the PSF is measured well enough for deconvolution to be +performed\footnote{Alternative or extended methods to the metacalibration process described here, modelling the full likelihood space of deconvolved galaxy properties in a unified way might one day be feasible, but are likely to be computationally challenging.}. For Rubin, this means using only the $r$, $i$, $z$, and perhaps $g$ bands. In this work we +therefore study how well we can perform tomography using only this limited photometric information. In +particular, this limitation prevents us from using the most obvious method for tomography, +and computing a complete photometric redshift probability density function (PDF) for each galaxy and assigning +a bin using the mean or peak of that PDF\footnote{This only prevents us using other photometry for \emph{selection}, not for \emph{characterization} after objects have been selected, such as computing the overall +number density $n(z)$ for a tomographic bin.}. + +Simulation methods can also be used to correct for selection biases, provided that they match the +real data to high accuracy. If we determine that limiting the bands we can use for tomography results +in a significant decrease in our overall 3x2pt signal-to-noise, outweighing the gain from the improved shape +calibration then this might suggest moving to rely more on such methods\footnote{One can account for +residual shear estimation uncertainty during parameter estimation by marginalizing over an unknown +factor. Widening the prior on this factor decreases the overall constraining power of the analysis.}. +Constructing simulations with the required fidelity is challenging at Rubin-level accuracy and requires +careful comparison to deep field data. + + +\section{Challenge Design} \label{sec:design} + +The DESC Tomographic Challenge opened in May 2020 and accepted entries until September 2020. + +In the challenge, participants assigned simulated galaxies to tomographic bins, +using only their (g)riz bands and associated errors, and the galaxy size. Their goal was to maximize the cosmological +information in the final split data set; this is generally achieved by separating different bins by +redshift as much as possible. Participants were free to optimize or simply select nominal (target) +redshift bin edges from their training sample, but in either case had to assign galaxies into the +different bins. + +This meant there were two ways to obtain higher scores: either to improve the choice of nominal bin +edges, or to find better ways to assign objects to those bins. This was a sub-optimal design decision: +separating the two issues would have enabled us to more easily delineate the advantages of different methods. +This can be explored retrospectively, since we know what approach methods took, but would have been +easier in advance. This and other mistakes in designing the challenge are described in \autoref{sec:mistakes}. + +This differs from many redshift estimation questions because we are not at all concerned with estimates +of individual galaxy redshifts; instead, this challenge was desgined as a classification and bin-optimization +problem, amenable to more direct machine-learning methods. As such we used the training / validation / testing +approach, as standard in machine-learning analyses. +The determination of the $n(z)$ of the recovered +bins (whether with per-galaxy estimates or otherwise) was not part of the challenge. + +\subsection{Philosophy} + +Since this was a preliminary challenge designed to explore whether it is possible \emph{in theory} +to use only the (g)riz bands for tomography, we chose to simplify several aspects of the data. In realistic +situations we will have access to limited sized training sets for WL photometric redshifts, since +spectra are time-consuming to obtain. These training sets will also be highly incomplete compared +to full catalogues, especially at faint magnitudes where spectroscopic coverage is sparse. In this +challenge we avoided both these issues -- the training samples we provided (see \autoref{sec:data}) were comparable +in size to the testing sample, and drawn from the same population. Given this, the challenge +represents a best-case scenario -- if no method succeeded on this easier case then more realistic +cases would probably be impossible. +These simplifications will increase scores overall, since one source of uncertainty in the calculation +is removed. We expect that they will disproportionately increase scores for large numbers of +tomographic bins, since the relative widening from individual galaxy uncertainties will be larger. Faint +galaxy samples, including those at higher redshift, will also be more affected. + +Despite these simplifications, the other aspects of the challenge and process were designed to be +as directly relevant as possible to the particular WL science case we focus on. The data set +was chosen to mimic the population, noise, and cuts we will use in real data (see \autoref{sec:data-proc}) +and the metrics were designed to be as close to the science goals as possible, rather than a lower +level representation (see \autoref{sec:metrics}). The data set was also large enough to pose a +reasonably realistic test of methods at the large data volume required for upcoming surveys, where +$10^9$ -- $10^{10}$ galaxies will be measured. + +The challenge was open to any entrants, not just those already involved in DESC, but it was +advertised through Rubin channels, and so is perhaps best described as semi-public. +Participants developed and tested their methods locally but submitted code to be run as part of a central +combined analysis at the National Energy Research +Supercomputing Center (NERSC), where the final tests and metric evaluation were conducted. No prize was offered apart from recognition. + +\subsection{Data} +\label{sec:data} + +\begin{figure}[htbp] + % \centering + \includegraphics[width=0.9\linewidth]{results/initial_data.pdf} + \caption{The underlying redshift number density $n(z)$ for the two catalogues used in the challenge, + after the initial cuts described in the text.} + \label{fig:initial_nz} +\end{figure} + +\begin{figure}[htbp] + % \centering + \includegraphics[width=0.9\linewidth]{results/colour_colour.pdf} + \caption{Colour-colour diagrams for the two catalogues used in the challenge, showing the bands + available to participants.} + \label{fig:colour_colour} +\end{figure} + +We ran challenge entries on two data sets, CosmoDC2 and Buzzard, each of which is split into training, +validation, and testing components. In each case participants were supplied with the training and +validation data, and the testing data was kept secret for final evaluation. In each case the three +data sets were random sub-selections of the full data sets, with the training and testing sets 25\% of +the full data each and the validation 50\%. + +Using two catalogues allows us to check +for over-fitting in the design of models themselves, and thus to determine whether two +reasonable but different galaxy populations can be optimized by the same methods; this will +tell us whether our conclusions might be reasonable for real data. We discuss correlations +between metric scores on the two data sets in Section \ref{sec:metric-results}. + +Each of these data sets come from cosmological simulations which provide truth values of galaxy magnitudes +and sizes. We simulate and add noise to the objects as described below. + +\subsubsection{CosmoDC2} \label{sec:cosmodc2} + +The CosmoDC2 simulation was designed to support DESC and +is described in detail in \citet{cosmodc2}. It covers 440 +deg${}^2$ of sky, and used the dark matter particles from the Outer Rim +simulations \citep{outer_rim}. The UniverseMachine \citep{universe_machine} +simulations were then used, with the GalSampler technique \citep{galsampler}, +in a combination of empirical and semi-analytic +methods, to assign galaxies with a limited set of specified properties to halos. + +These objects were then matched to outputs of the Galacticus model +\citep{galacticus}, which generated complete galaxy properties and which was run +on an additional DESC simulation, AlphaQ, and included all the LSST bands. The +simulation is complete to $r=28$, and contains objects up to redshift 3. We +include the ultra-faint galaxies, not assigned to a specific halo, in our sample. + +One limitation of the CosmoDC2 catalogues, found as part of the challenge, +was that the matching to Galacticus led to only a limited number of SEDs being +used at high redshifts, and thus too many galaxies in the simulations sharing +similar characteristics at these redshifts, such as colour-colour relations. +It was unknown whether this limitation would have any practical impact on the challenge; +this was a reason for adpoting the additional Buzzard catalogue. + +\subsubsection{Buzzard} + +The Buzzard catalogue was developed to support the DES Year 1 (DES-Y1) +data analysis, and is described in detail in \citet{buzzard}. +It has previously been used in DESC analyses, for example in \citet{dc1_pz}. +The catalogue used dark +matter simulations from L-GADGET2 \cite{gadget2} and then added galaxies using +an algorithm that matches a set of galaxy +property probability densities to data using sub-halo abundance matching. +Buzzard galaxies extend to around redshift 2.3 (significantly shallower than CosmoDC2) +and were shown to be a good +match (after appropriate selections) to DES-Y1 observable catalogues. Magnitudes +using the LSST band passes were provided in the catalogue. + +\subsubsection{Post-processing} \label{sec:data-proc} + +We add noise to the truth values in the extra-galactic catalogues to simulate real observations. +In each case we simulate first year Rubin observations +using the DESC {\sc TXPipe} framework\footnote{\url{https://github.com/LSSTDESC/TXPipe}}. +This follows the methodology of \citet{ivezic_jones_lupton} +and assuming the numerical values for telescope and sky properties therein: +for each galaxy it generates a Poisson sample of the number of photons per band based on +its true magnitude, the sky brightness, and instrumental characteristics. +No noise is added to the redshifts of the galaxy; we defer discussion of photometric +redshift uncertainty to future work. + +In both simulations we add two cuts to approximately simulate the selection used in a real +lensing catalogue. In both cases we apply a cut on the combined $riz$ signal to noise of +$S/N > 10$, and a size cut $T / T_\mathrm{psf} > 0.5$, where +$T$ is the trace $I_{xx} + I_{yy}$ of the moments matrix and measures the squared (deconvolved) +radius of the +galaxy, and $T_\mathrm{psf}$ is a fixed Rubin PSF size of $0.75$ arc-seconds. + +After this section, and cuts to contiguous geographic regions, we used around 20M objects from the Buzzard +simulations and around 36M objects from the CosmoDC2 simulations. The nominal 25\% training data sets were therefore 5M and 9M objects respectively, but many entrants trained their methods on a reduced subset of the data. To make training tractable but consistent for the full suite we therefore trained all methods with 1M objects for each data set. + +The overall number density $n(z)$ of the two data sets is shown in Figure \ref{fig:initial_nz}, +and a set of colour-colour diagrams in Figure \ref{fig:colour_colour}. + +\subsection{Metrics} +\label{sec:metrics} + +In this challenge we use only a lensing source (background) population, since the metacal requirements +do not apply to the foreground lens sample. We do, however, calculate 3x2pt metrics using the +same source and lens populations, both because this scenario is one that will be used in some analyses, +and because clustering-like statistics of lensing samples are important for studies of intrinsic +alignments. We use three different sets of metrics, one based on the overall signal to noise of the angular power spectra +derived from the samples, and two based on a figure-of-merit for the constraints that would be obtained +using them. The relationships between these metrics in our results are discussed in \autoref{sec:metric-results}. +We compute each metric on three different sets of summary statistics: lensing-alone, clustering-alone, +and the full 3x2pt. We therefore compute a total of nine values for each bin selection. + +For each bin $i$ generated by a challenge entry, we make a histogram of the true redshifts +of each galaxy assigned to the bin. This is then used as our number density $n_i(z)$ in the metrics +below. Both metrics reward bins that can +cleanly separate galaxies by redshift, since this reduces the covariance between the samples. No +method can perfectly separate them, so good methods reduce the tails of $n_i(z)$ that overlap with +neighbouring bins. + +We developed two implementations of each of these metrics, one using the Core Cosmology Library +\citep{ccl} and one the JAX Cosmology Library \citep{jax-cosmo}, which provides differentiable theory +predictions using the JAX library \citep{jax}. In production we use the latter since it provided a +more stable calculation of metric 2. + +Metric 1 would be approximately measurable on real data without performing a full cosmology analysis, +whereas metrics 2 and 3 would be the final output of such an analysis. They therefore test performance at what +would be multiple stages in the wider pipeline. In each case the metrics are constructed so that a larger +value is a better score. + +Entrants to the challenge were permitted to use the metrics here on the training data, and several did +so to optimize their target bin edges (see \autoref{sec:train-vs-fix}). + +\subsubsection{Metric 1: SNR} + +Our first metric is the total signal-to-noise ratio (SNR) of the power spectrum derived from the assigned +$n_i(z)$ values: +\begin{equation} + S = \sqrt{\mu^{T} C^{-1} \mu} +\label{eq:snr} +\end{equation} +where $\mu$ is a stack of the theoretical predictions for the $C_\ell$ spectra for each tomographic +bin pair, in turn (including auto- and cross-correlations for both clustering and lensing), and $C$ a estimate of the covariance between them, making the approximation that the underlying density field has a Gaussian distribution as described in +\citet{takada_jain} and summarized in \autoref{app:theory}. We compute this metric for lensing alone, clustering alone, and the full 3x2pt combination. + +\subsubsection{Metrics 2 \& 3: $w_{0}-w_{a}$ and $\Omega_c-\sigma_8$ FOMs} + +Metric 2 uses a figure of merit (FOM) based on that presented by the Dark Energy Task Force (DETF) \citep{detf}. We +use the inverse area of a Fisher Matrix ellipse, which approximates the size in two axes +of the posterior PDF one would obtain on analysing the spectra: +\begin{align} + F &= \left( \frac{\partial \mu}{\partial \theta} \right)^T C^{-1} \left( \frac{\partial \mu}{\partial \theta} \right), \\ + \mathrm{FOM} &= \frac{1}{2 \pi \sqrt{\det{([F^{-1}]_{p_1, p_2})}}} +\label{eq:fom} +\end{align} +where $[F^{-1}]_{p_1, p_2}$ extracts the 2x2 matrix for two parameters. We use both the original +DETF variant in which $p_1 = w_0$ and $p_2 = w_a$, representing the constraining power on dark energy +evolution, and a version in which $p_1 = \Omega_c$ and $p_2 = \sigma_8$, representing constraining +power on overall cosmic structure amplitude ($\sigma_8$), and its evolution (a function of $\Omega_c$). In each case the complete parameter space consists +of the seven $w_0w_aCDM$ cosmological parameters; we used the parameter combination used natively by the DESC core cosmology library \citep{ccl} ($\Omega_c, \Omega_b, \mathrm{H}_0, \sigma_8, n_s, w_0, w_a$). This simplified measure does not include any nuisance +parameters modelling systematic errors in the analysis, most importantly the galaxy bias parameters in the clustering +spectra; this artifically increases the constraining power of the galaxy clustering-only metric, as we will see below, but the metric still acts as a useful proxy for science cases dependent on finding well separated bins. +Like all Fisher analyses, this metric approximates posterior constraints as Gaussian. + +The JAX library provides automatic differentiation of the calculation of the $C_\ell$ values, and so avoids the painful numerical sensitivity which usually affects Fisher matrix calculations. We verified this by comparing the code to tuned finite difference estimates on CCL spectrum calculations. + +\subsection{Infrastructure} + +The challenge was structured as a python library, in which each assignment +method was a subclass of an abstract base parent superclass, {\sc Tomographer}. +The superclass, and other challenge machinery, performed initialization, +configuration option handling, data loading, and computing derived quantities +such as colours from magnitudes. + +Participants were expected to subclass +{\sc Tomographer} and implement two methods, {\sc train} and {\sc apply}. Each +was required to accept as an argument an array or dictionary of galaxy properties +(magnitudes, and, optionally, sizes, errors, and colours). The {\sc train} method +was also passed an array of true redshift values, which could be used however they wished. +Methods were submitted to the challenge in the form of a pull request to the challenge +repostitory on GitHub\footnote{\url{http://github.com/LSSTDESC/tomo_challenge}}. + +The training and validation parts of the data set were made available for training +and hyper-parameter tuning. Once the challenge period was complete, the algorithms +were collected from the pull requests and run at NERSC. If a method failed due to a difference in the +runtime environment or the hardware at NERSC, the participants and organizers tried +to amend it after the formal challenge period ended, though this was not always possible. + + + +\subsection{Control Methods} + +Two ``control'' methods were used to test the challenge machinery and ensure +that metrics behaved appropriately in specific limits. + +The \textsc{Random} algorithm randomly assigned galaxies to each tomographic bin, resulting +in bins which each had the same $n(z)$, on average (the random noise fluctuations +are very small when using this number of galaxies). Using this method, we expect +that increasing the number of bins should not increase any metric score, since bins are +maximally correlated. We find this to be true for all our metrics. + +The \textsc{IBandOnly} method used only the $i$-band to select bin assignments. +Edge values of bins in $i$ were chosen such that each bin had the same number of training galaxies in, +and then test sample galaxies assigned to a bin based only on their $i$ band value. The band correlates +only weakly with redshift, so the scores of the method are poor. +We expect only a small +increase in metric score with the number of bins, and also that the addition of the $g$-band +should make no difference to scores, because that column of data is not used in the method. Again, we find this to be true. + + + +\section{Methods \& Results} \label{sec:results} + + +Twenty-five methods were submitted to the challenge, including the control methods described above. +Most used machine learning methods of various types to perform the primary classification, +rather than trying to perform a full photometric redshift analysis. +These methods are listed in \autoref{tab:entrants} and described in full in \autoref{app:methods}. + +\begin{table*}[] +\centering + \begin{tabular}{|l|p{8cm}|c|} + \hline + \textbf{Name} & \textbf{Description} & \textbf{Submitters} \\ + \hline + \textsc{Random} & Random assignment (control method) & Organizers \\ + \textsc{IBandOnly} & i-band only (control method) & Organizers \\ + \textsc{RandomForest} & A collection of individual decision trees & Organizers \\ + \textsc{LSTM} & Long Short-Term Memory neural network & CRB, BF, GT, ESC, EJG \\ + \textsc{AutokerasLSTM} & Automaticaly configured LSTM variant. & CRB, BF, GT, ESC, EJG \\ + \textsc{LGBM} & Light Gradient Boosted Machine & CRB, BF, GT, ESC, EJG \\ + \textsc{TCN} & Temporal Convolution Network & CRB, BF, GT, ESC, EJG \\ + \textsc{CNN} & Convolutional Neural Network & CRB, BF, GT, ESC, EJG \\ + \textsc{Ensemble} & Combination of three other network methods & CRB, BF, GT, ESC, EJG \\ + \textsc{SimpleSOM} & Self-Organizing Map & AHW \\ + \textsc{PQNLD} & Extension of {\sc SimpleSom} combining with template-based redshift estimation & AHW \\ + \textsc{UTOPIA} & Nearest-neighbours, optimised in the limit of large representative training sets & AHW \\ + \textsc{ComplexSOM} & Extension of {\sc SimpleSom} with an additional assignment optimization & DA, AHW, AN, EG, BA, ABr \\ + \textsc{GPzBinning} & Gaussian Process redshift estimator and binner & PH \\ + \textsc{JaxCNN/JaxResnet} & Two related CNN-based bin edge optimizers & AP \\ + \textsc{NeuralNetwork1/2} & Dense network optimizing bin assignment for two metrics & FL \\ + \textsc{PCACluster} & Principal Component Analysis of fluxes then optimized clustering & DG \\ + \textsc{ZotBin/ZotNet} & Two related neural network methods with a preprocesing normalizing flow & DK \\ + \textsc{FFNN} & Feed-forward neural network & EN \\ + \textsc{FunBins} & Random forest with various nominal bin edge selection & ABa \\ + \textsc{MLPQNA} & Multi-layer perceptron & SC, MB \\ + \textsc{Stacked Generalization} & Combination of Gradient Boosted Trees classifiers with standard Random Forests (50/50) & JEC\\ + \hline + \end{tabular} + \caption{Methods entered into the challenge. The algorithms are described more fully in \autoref{app:methods}.} + \label{tab:entrants} +\end{table*} + + + +\subsection{Result types} + +\begin{table*}[] +\centering + \begin{tabular}{|l|llll|llll|} + \hline + & \multicolumn{4}{c|}{\textbf{riz}} & \multicolumn{4}{c|}{\textbf{griz}} \\ \hline + \textbf{Method} & \textbf{3-bin} & \textbf{5-bin} & \textbf{7-bin} & \textbf{9-bin} & \textbf{3-bin} & \textbf{5-bin} & \textbf{7-bin} & \textbf{9-bin} \\ \hline + \input{results/tables/table_FOM_DETF_3x2_dc2.tex} + \hline + \end{tabular} + \caption{Values of the 3x2pt DETF ($w_0,w_a$) figure-of-merit achieved by entrant methods on the + CosmoDC2 part of the challenge. The horizontal line separates two general approaches to the problem, as discussed in \autoref{sec:train-vs-fix}: those below the line used fixed + target edges for tomographic bins and optimized the assignment of objects to those bins, + whereas those above also optimized the target edges themselves. + Asterisks indicate runs which failed during classification, and dashes indicate runs with + number counts too small for spectra to be generated. + } + \label{tab:cosmodc2} +\end{table*} + +The methods described above were run on a data set, previously unseen by entrants but drawn +from the same underlying population, of size 8.6M objects for CosmoDC2 (our fiducial simulation) and 5.4M objects for Buzzard. +A complete suite of the metrics described in Section \ref{sec:metrics} was run on each of the two +for each method. In total, each method was run on 16 scenarios, each combination of: $griz$ vs. $riz$, +Buzzard vs. CosmoDC2, and 3, 5, 7, and 9 bins requested. Nine metrics were calculated for each +scenario: clustering, lensing, and 3x2pt for each of the SNR metric (Equation \ref{eq:snr}), the $w_0-w_a$ +DETF FOM, and the $\Omega_c - \sigma_8$ FOM (Equation \ref{eq:fom}). + + +\subsection{Results Overview} +The DETF results for each method are shown in Table \ref{tab:cosmodc2}. Complete results for all metrics +for the nine-bin scenario only are shown in appendix Tables \ref{tab:full_dc2} and \autoref{tab:full_buzz}. + +In all these tables, missing entries are shown for two reasons. +The first, marked with an asterisk, is when a method did not run for the given scenario, +either due to memory overflow or taking an extremely long time. +The second, marked with a dash, is when a method ran, but generated at least one bin with an extremely +small number count, such that the spectrum could not be calculated. + + +\begin{figure}[htbp] + % \centering + \includegraphics[width=1\linewidth]{results/nzbinned_dc2_funbins.pdf} + \caption{The tomographic $n(z)$ values generated by the winning method in the challenge, {\sc FunBins}, + generating nine bins with the CosmoDC2 data. + The upper panel shows results for the method applied to $riz$ bands, and the middle on $griz$. + The lower panel is for comparison and is not part of the challenge; + it illustrates {\sc FunBins} results using all the $ugrizy$ bands. + The increased spread and overlap of the bins as bands are removed decreases the overall constraining + power and signal-to-noise. + } + \label{fig:funbin_nz} +\end{figure} + +No one method dominates the metrics across the different scenarios considered. +Before the challenge began we somewhat arbitrarily chose +the 9-bin 3x2pt $griz$ CosmoDC2 $w_0-w_a$ metric as the fiducial scenario on which +an overall winning method would be selected. +By this criterion the best method was, by a small margin, \textsc{FunBins}, +which used a random forest to assign galaxies to after choosing nominal bin edges that split +the range spanned +by the sample into equal co-moving distance bins. +As described in \autoref{sec:funbins}, this splitting was designed +to minimize the shot noise for the angular power in each bin, and this has proven successful. +Figure \ref{fig:funbin_nz} shows the number density obtained by this method, for both the riz and griz +scenarios, and an additional post-challenge run using the full Rubin $ugrizy$ bands. +The metrics \textsc{FunBins} +obtained on $ugrizy$ are barely higher than those with $griz$ -- the largest +increase is 8\% for the $\Omega_c-\sigma_8$ metric, with the remainder all 5\% or less. + +Other methods performed better in other branches of the challenge; in particular we note \textsc{ZotNet}, \textsc{Stacked Generalization}, and \textsc{NeuralNetwork} (see sections \ref{sec:zot}, \ref{sec:stackgen}, and \ref{sec:nn} respectively), which each won more than three 9-bin scenarios. An illustration of the rank achieved by each method within each challenge configuration and for each metric +is shown in \autoref{fig:rank_grid}. + + + +\begin{figure*}[htbp] + % \centering + \includegraphics[width=\linewidth]{results/rank_grid.pdf} + \caption{The rank of each method (1 = highest scoring, 25 = lowest scoring) within each configuration of the challenge, for each metric separately. A method that was good everywhere would appear as yellow strip across an entire horizontal range.} + \label{fig:rank_grid} +\end{figure*} + + +These results suggest that, at least in our idealised scenario of perfect training sets and given the limitations of our simulations, restricted photometry does not necessarily catastrophically limit our ability to use tomography. +In both the CosmoDC2 and Buzzard data sets, +even the $riz$ bands alone are sufficient to split objects into nine reasonably separated +tomographic bins. Once bins become this narrow the primary analysis concern will become the calibration +of overall bin $n(z)$ values, rather than initial tomography, so we consider this to be reassuring. + +There is a clear widening of the $n(z)$ when losing the $g$-band. This widening leads to a loss in +constraining power, which is discussed more in Section \ref{sec:gband}. + +For comparison, we also show results using all six LSST bands, $ugrizy$; these could not be used +with the metacalibration method. The improvement in the sharpness of the bins is noticeable but not large. +We quantify this in Figure \ref{fig:overlap}, which shows the fraction of objects that are in ambiguous +redshift slices, defined as objects in redshift ranges where there are more objects assigned to another +tomographic bin. The total fraction of such objects is also shown. This illustrates how adding the $g$ band +improves the assigment +for almost every pair of bins, and reduce the ambiguous fraction by a factor of three to the +point where a significant majority of galaxies are clearly assigned. Further adding the remaining $u$ and $y$ +bands improves the assignment in a way that is smaller, though not insignificant, in both relative and absolute terms. +This latter addition also does not translate into large increases in the figures of merit: the +DETF score for CosmoDC2 is 169.7, barely higher than its score of 167.2 for $griz$, and this is also true for other +metrics. While this is only a general indication and not a thorough exploration, it is encouraging. + + +\begin{figure*}[htbp] +% \centering +\includegraphics[width=0.9\linewidth]{results/nzoverlap_dc2_funbins.pdf} +\caption{The pairwise fractions $f_\mathrm{mis}$ of total objects in redshift regions where multiple tomographic bins contain galaxies, for +the \textsc{FunBins} tomography method and three choices of bands. +The $x$- and $y$-axes +show tomographic bin indices, +and the colour represents the fraction of objects (compared to the total number in the challenge) that are +at redshifts where both tomographic bins have members, in bins of width $\delta z=10^{-3}$. +This metric corresponds to +the fraction of the area that is shaded in two colours in Figure \ref{fig:funbin_nz}. +The total-overlap figure gives the total fraction of objects +that are ambiguous over all bins, and is the sum of all the pairwise values.} +\label{fig:overlap} +\end{figure*} + + + +\textsc{FunBins} seems to be a good and stable general method, though several other methods perform as well +or slightly better in other scenarios. Notably, many methods reach the same plateau in lensing-only metrics, +suggesting this is somewhat easier to optimize; this is consistent with the general reason that photometric +redshifts suffice for lensing: the broad lensing kernels are less sensitive to small changes. + +Several of the neural network methods perform well up to seven tomographic bins but fail when run with +nine. This is presumably not an intrinsic feature of these methods, but depends on implementation details. +Further development solving these challenges should be valuable, since they are among the highest scoring seven-bin +methods. + +\subsection{Non-assignment} +The challenge did not require entrants to assign all galaxies to bins; aside from the impact of reduced final sample size on the metrics, no additional penalty was applied for discarding galaxies entirely. Several methods +took advantage of this. The \textsc{ComplexSOM} method (see \autoref{sec:csom}) found +it did not improve scores, but as noted in \autoref{sec:pqnld} this may be an artifact +of the high density of the training data, and so could be explored in future challenges\footnote{In real data or more realistic simulations discarding galaxies has more complicated effects than simply decreasing sample size as it does here - removing objects with broad $p(z)$ can narrow the final $n(z)$, not just lower it. This was not a factor in this challenge because we use true redshifts to calculate our metrics.}. See \citet{euclid-nz} for a discussion of this topic in the Euclid context. + + +\subsection{Metric comparisons} \label{sec:metric-results} +Figure \ref{fig:metrics} shows a comparison of some of the different metrics used in the challenge. +We plot, using assignments for methods and for all bin counts, the relationship between our fiducial +metric, the DETF 3x2pt on CosmoDC2, and other metrics we measured. + +The different metrics are generally well-correlated (this also holds true for the metrics not +shown here), especially at the highest values of the metrics representing the most successful +methods. This is particularly so when comparing the Buzzard and CosmoDC2 metrics, which is encouraging +as it implies these methods are broadly stable to reasonable changes in the underlying galaxy +distribution, and hence on the survey properties. The largest outlier comes from the +{\sc NeuralNetwork} entry. + +This is not true of the overall winning method for large bin counts - as shown in the tables +in \autoref{app:tables}, significantly more methods achieve a top-scoring spot in the Buzzard +table \ref{tab:full_buzz} than in the CosmoDC2 table \ref{tab:full_dc2}. This reinforces the +conclusion discusssed below in \autoref{sec:train-vs-fix} that target bin edges should be +re-optimized for each new scenario, though the relatively noisy +results make this difficult to interpret. + +The relatively broader spread in the lensing-only metric illustrates how our metric is dominated +by the stronger constraining power in the clustering part of the data set. This arises because +we do not include a galaxy bias model in our FOM, and so the constraining power of the clustering +is artifically high; this limitation is one reason we explore a wide variety of metrics. + +Finally, there is a bimodal structure in the relationship between the FOM and SNR metrics. +This largely traces the split between models which train the target bin edges vs those +which fix them, as described below in Section \ref{sec:train-vs-fix}. + + + +\begin{figure}[htbp] +% \centering +\includegraphics[width=0.9\linewidth]{results/metric_comparisons.pdf} +\caption{A comparison of the metrics used in our challenge for the different methods that were entered. The x-axis is shared, and shows +the 3x2pt $w_0 - w_a$ (DETF) figure of merit on the CosmoDC2 data set for all methods, +with colours labelling the number +of bins used. Each of the panels shows a metric which is the same except for a single change, +which is labelled on its y-axis. For example, the top panel still shows the 3x2pt $w_0 - w_a$ (DETF) figure of merit, +but for the Buzzard data set.} +\label{fig:metrics} +\end{figure} + + + +\subsection{Impact of losing g-band} \label{sec:gband} +Figure \ref{fig:loss} shows the ratio of the FOM between methods using the griz and the same method +using the riz. Each point represents one method with a specific number of bins, indicated by colour. +For lower scoring methods and for smaller numbers of bins there is more scatter in the ratio, +but for the highest scoring algorithms and configurations the loss when losing g-band is a little +more stable, at around 10--15\%. + +The value of the extra FoM that could be gained by adding the band should be weighed against +the challenge of high-accuracy +PSF measurement for this band, and the cost in time and effort of determining it, +but until the end of the survey this is unlikely to be the limiting factor in overall precision. + +Some methods perform worse when adding the $g$-band, which we ascribe to reduced performance +in their machine learning algorithms when increasing the dimensionality of their inputs; further tuning +of their hyperparameters could perhaps alleviate the issue. + + +\begin{figure*} +\includegraphics[width=0.9\linewidth]{results/g_band_loss.pdf} +\caption{The degradation in constraining power over all methods + when comparing them on methods including and excluding +the g-band, in terms of the ratio of the $w_0-w_a$ figure of merit. The left-hand panel shows +results for the CosmoDC2 scenarios, and the right-hand panel for the Buzzard scenarios. Colours +indicate the number of bins used in the analysis. Some methods perform worse when adding the $g$-band +and have ratios greater than unity.} +\label{fig:loss} +\end{figure*} + +\subsection{Trained edges vs fixed edges}\label{sec:train-vs-fix} + +Some of the methods in the challenge accepted target bin edges as an input to their algorithms, +and then used classifiers to assign objects to those bins. Entrants could select these edges; many followed the example random forest entry and split into equal counts per bin; some like \textsc{FunBins} used alternative +criteria. Other methods optimized the values +of bin edges themselves, by maximizing a metric. For the runs shown here, these methods mostly +targeted one of the 3x2pt metrics. + +A comparison of trained-edge and fixed-edge methods on the CosmoDC2 griz scenarios +is shown in Figure \ref{fig:edges}, and the same data normalized against the score achieved +by objects binned in true redshift (i.e. a perfect assigment method) are shown in Figure \ref{fig:metric_grid_dc2_griz}. + +One important point to note is that while trained-edge +methods dominate the highest scores for the 3x2pt DETF metric, on which they trained, they +fare much worse on the lensing-only metrics (the methods were not re-trained on the lensing metrics; +we show the metrics for the same assigned bins). This suggests that the difference between +optimal bins for different science cases is a significant one, and thus that analysis pipelines +should make it straightforward to calibrate multiple configurations and pass them to +subsequent science analysis; this will probably be true even when comparing models +differing only in their systematic parametrizations. +This feature is highlighted by the comparison between the two variants +of the \textsc{NeuralNetwork} entry, which differed only in which metric they were targeting; +optimizing one metric does not optimize the other (though the changes between results on the two simulations +could also indicate that this is related to the high-redshift behaviour in the CosmoDC2 simulation +described in \ref{sec:cosmodc2}). + +\begin{figure} +\includegraphics[width=0.9\columnwidth]{results/edge_comparison.pdf} +\caption{A comparison of results from methods which used fixed target edges (dashed blue) +with those which optimized target bins (solid orange). Methods were trained on the 3x2pt metric +shown in the upper panel; the lower performance for these classifications +for the lensing-only metric shown in the lower panel illustrates the need for science case-specific +binning choices. In each case, classification is done using griz bands on the CosmoDC2 data set.} +\label{fig:edges} +\end{figure} + +\begin{figure*} +\includegraphics[width=1\linewidth]{results/metric_grid_dc2_griz.pdf} +\caption{Normalized scores for each method, normalized between the score for random assignment (zero) and truth assignment to bins with equal number counts (one). It can be seen that both equal-number and equal-redshift spacings can be beaten for certain metrics. In each case, classification is done using griz bands on the CosmoDC2 data set; equivalent plots for Buzzard and riz are shown in \autoref{app:metric_grids}. +\emph{ww} indicates lensing-only metrics, \emph{gg} indicates clustering only, and \emph{3x2} their combination. +The three metrics are defined in \autoref{sec:metrics}. +} +\label{fig:metric_grid_dc2_griz} +\end{figure*} + + +Among methods with fixed bins, those using equal numbers in each tend to plateau at scores of +120-140 in Table \ref{tab:cosmodc2}, suggesting that a range of machine learning models can +effectively classify by bin, at least in this case of representative, extensive training +information. Notably, this is the case even for the \textsc{UTOPIA} entry, which uses the nearest +training set neighbour to assign bins and thus is explicitly optimised +for this idealised scenario; it should give an upper limit when using the same fixed bins. +That other methods with the same nominal bin choice achieve scores close to it once again +confirms that many entries are close to the best possible score for this approach. + + +Several of the methods with optimized target bin edges break this +barrier and achieve very high scores. This included \textsc{ZotNet}, \textsc{ZotBin}, and \textsc{JaxResNet}. The +\textsc{Stacked Generalization} method similarly included manually tuned bin edges to maximize +score for this scenario (and indeed its ensemble combination method could be applied to +combine the other successful methods). The typical 15--20\% improvement in FoM scores when optimizing +nominal bin edges makes clear that re-selecting edges for each science case is worth the time and effort required. + +Notably, though, the winning CosmoDC2 \textsc{FunBins} method used the simpler approach desribed above. The +success of this simple and fast solution suggests this as an easy heuristic for well-optimized nominal edges, +at least for cases where clustering-like metrics are important. Its relatively lower +scores on the Buzzard metrics, as noted in \autoref{sec:metric-results}, does however further highlight +the importance of science- and sample-specific training. + +\section{Conclusions} \label{sec:conclusion} +The Tomography Challenge has proved a useful mechanism for encouraging the development +of methods for this science question. We encourage this challenge structure for other +well-specified science cases, and DESC has subsequently run other challenges along the same lines +such as the N5K beyond-limber challenge\footnote{\url{https://github.com/LSSTDESC/N5K}}. +We describe in Appendix \ref{sec:mistakes} some lessons we have learned from this challenge +that may be useful for future ones. + +The results of the challenge have shown that three or four-band photometry +is sufficient for specifying tomography even up to a large number of bins, if +the training data is complete enough: degeneracies between colour do not make this impossible. +Excluding the g-band from the data reduces the constraining power by a noticeable but +not catastrophic amount ($\sim 15$\%). + +The wide range in scores for nominally similar methods (for example, the several methods using +neural network approaches) reminds us that, generically, the implementation details of machine +learning methods can drastically affect their performance. + +Finally, we have shown that in general there is a signficant advantage to optimizing +target bins afresh when considering a new science case; this can be a significant boost +to the final constraining power. +Despite this, evenly spaced bins in fiducial co-moving distance have proven +a good general choice, as shown in the winning method in the challenge, {\sc FunBins}. + +The challenge was heavily simplified, with the intention of testing whether +effective bin-assignments with limited photometry is possible even in theory, +and of generating as many potential methods for the task as possible. With +both these achieved, future directions for simulating the problem are clear. +The most obvious is limited spectroscopic completeness and size. Realistic +training data sets will be far smaller than the millions of objects we used here, +and the difficulty of measuring spectra for faint galaxies will make them +incomplete and highly unrepresentative. Machine learning methods will be particularly +affected by the latter problem. Future challenges must explore these important limitations +using simulated incompleteness, and use realistic photo-z methods to compute metrics. + + +\section{Acknowledgements} + +This paper has undergone internal review in the LSST Dark Energy Science Collaboration. +The internal reviewers were Markus Michael Rau, Christopher Morrison, and Shahab Joudaki. + +AHW is supported by a European Research Council Consolidator Grant (No. 770935). +The work of EG and ABr was supported by the U.S. Department of Energy, Office of Science, Office of High Energy Physics Cosmic Frontier Research program under Award Number DE-SC0010008. +CRB, ESC, BMOF, EJG, and GT made use of multi-GPU Sci-Mind Brunelleschi machines developed and tested for Artificial Intelligence and would like to thank CBPF Multi GPU development team of LITCOMP/COTEC, for supporting this infrastructure. +ESC acknowledges support from the FAPESP (\#2019/19687-2) and CNPq (\#308539/2018-4). +MB acknowledges financial contributions from the agreement ASI/INAF 2018-23-HH.0, Euclid ESA mission - Phase D. +PH acknowledges generous support from the Hintze Family Charitable Foundation through the Oxford Hintze Centre for Astrophysical Surveys. + + +The DESC acknowledges ongoing support from the Institut National de +Physique Nucl\'eaire et de Physique des Particules in France; the +Science \& Technology Facilities Council in the United Kingdom; and the +Department of Energy, the National Science Foundation, and the LSST +Corporation in the United States. DESC uses resources of the IN2P3 +Computing Center (CC-IN2P3--Lyon/Villeurbanne - France) funded by the +Centre National de la Recherche Scientifique; the National Energy +Research Scientific Computing Center, a DOE Office of Science User +Facility supported by the Office of Science of the U.S.\ Department of +Energy under Contract No.\ DE-AC02-05CH11231; STFC DiRAC HPC Facilities, +funded by UK BIS National E-infrastructure capital grants; and the UK +particle physics grid, supported by the GridPP Collaboration. This +work was performed in part under DOE Contract DE-AC02-76SF00515 + +\subsection{Author Contributions} +Zuntz led the project, ran the challenge, wrote most paper text, and made plots. +Lanusse submitted methods, made plots, and contributed to metrics, infrastructure, analysis, and conclusions. +Malz and Wright made plots, and contributed to analysis and conclusions; Wright also submitted methods. +Slosar submitted methods, wrote initial infrastructure, and assisted with challenge design. +Authors Abolfathi to Teixeira submitted methods to the challenge. +Subsequent authors generated the data used in the challenge and contributed to infrastructure used in the project. + +Authors CRB, ESC, BMOF, EJG, and GT are collaborators from outside the +Dark Energy Science Collaboration included here under a DESC publication policy exemption. +\vspace{1cm} + +\subsection{Author Affiliations} + +$^{1}$Institute for Astronomy, University of Edinburgh, Edinburgh EH9 3HJ, United Kingdom\\ +$^{2}$AIM, CEA, CNRS, Universit\'e Paris-Saclay, Universit\'e Paris Diderot, Sorbonne Paris Cit\'e, F-91191 Gif-sur-Yvette, France\\ +$^{3}$German Centre of Cosmological Lensing, Ruhr-Universit\"{a}t, Universit\"{a}tsstra{\ss}e 150, 44801 Bochum, Germany\\ +$^{4}$Brookhaven National Laboratory, Upton NY 11973, USA\\ +$^{5}$Department of Physics and Astronomy, University of California, Irvine, CA 92697, USA\\ +$^{6}$Astrophysics, University of Oxford, Denys Wilkinson Building, Keble Road, Oxford, OX1 3RH, UK\\ +$^{7}$Centro Brasileiro de Pesquisas F\'isicas, Rua Dr. Xavier Sigaud 150, 22290-180 Rio de Janeiro, RJ, Brazil\\ +$^{8}$Centro Federal de Educa\c{c}\~{a}o Tecnol\'{o}gica Celso Suckow da Fonseca, Rodovia M\'{a}rcio Covas, lote J2, quadra J - Itagua\'{i} (Brazil)\\ +$^{9}$INAF - Osservatorio Astronomico di Capodimonte, via Moiariello 16, I-80131, Napoli Italy\\ +$^{10}$Department of Physics and Astronomy, Rutgers, the State University, Piscataway, NJ 08854, USA\\ +$^{11}$Universit\'e Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France\\ +$^{12}$INFN - Sezione di Napoli, via Cinthia 21, I-80126 Napoli, Italy\\ +$^{13}$Department of Physics ``E. Pancini'', University of Naples Federico II, via Cintia, 21, I-80126 Napoli, Italy\\ +$^{14}$Universidade de S\~ao Paulo, IAG, Rua do Mat\~ao 1225, S\~ao Paulo, SP, Brazil\\ +$^{15}$Instituto de Astronom\'{\i}a Te\'orica y Experimental (IATE-CONICET), Laprida 854, X5000BGR, C\'ordoba, Argentina.\\ +$^{16}$Observatorio Astron\'omico de C\'ordoba, Universidad Nacional de C\'ordoba, Laprida 854, X5000BGR, C\'ordoba, Argentina.\\ +$^{17}$Dunlap Institute for Astronomy and Astrophysics, University of Toronto, 50 St George St, Toronto, ON M5S 3H4, Canada\\ +$^{18}$Department of Astrophysical Sciences, Princeton University, Peyton Hall, Princeton, NJ 08544, USA\\ +$^{19}$Department of Physics and Astronomy, University of California, Davis, Davis, CA 95616, USA\\ +$^{20}$Argonne National Laboratory, 9700 S Cass Ave, Lemont, IL 60439, USA\\ +$^{21}$Department of Physics and Astronomy, Rutgers University, Piscataway, NJ 08854, USA + + + +\bibliography{paper} + + +\appendix + +\section{Theory}\label{app:theory} + +In our metrics, the power spectrum between two tomographic bins $i$ and $j$ is +computed using either the Core Cosmology Library \citep{ccl} or the JAX +Cosmology Library \citep{jax-cosmo} as: + +\begin{equation} + C^{ij}_\ell = \int_0^{\infty} \frac{q_i(\chi) q_j(\chi)}{\chi^2} P\left(\frac{\ell +\frac{1}{2}}{\chi}, \chi \right) \mathrm{d}\chi +\end{equation} +where $\chi = \chi(z)$ is the comoving distance and $P$ the non-linear matter power spectrum at +a fiducial cosmology. The kernel functions $q_i(\chi)$ are different for the lensing and clustering samples: +\begin{align} + q^{\mathrm{clust}}_i(\chi) &= n_i(\chi)\\ + q^{\mathrm{lens}}_i(\chi) &= \frac{3}{2}\Omega_m \left(\frac{\mathrm{H}_0}{c}\right)^2 \frac{\chi}{a(\chi)} \int_\chi^{\infty} \frac{\chi' - \chi}{\chi'} n_i(\chi')\,\,\mathrm{d}\chi' +\end{align} +where $n_i(\chi) = n_i(z) \frac{\mathrm{d}z}{\mathrm{d}\chi}$. + +We evaluate these at 100 $\ell$ values from $\ell_\mathrm{min}=100$ to $\ell_\mathrm{max}=2000$. + +We use a Gaussian estimate for the covariance \citep{takada_jain}; this also incorporates the number of galaxies in the +sample: +\begin{equation} + \mathrm{Cov}(C^{ij}_\ell, C^{mn}_\ell) = \frac{1}{(2 \ell + 1)\Delta\ell f_\mathrm{sky}}(D^{im}_\ell D^{jn}_\ell + D^{in}_\ell D^{jm}_\ell) +\end{equation} +where $D^{ij}_\ell = C^{ij}_\ell + N^{ij}_\ell$, $\Delta\ell$ is the size in $\ell$ of the binned spectra, and we assume an $f_\mathrm{sky}=0.25$. The noise spectra are: +\begin{align} +N^{\mathrm{clust},ij}_\ell = \delta_{ij} / n_i \\ +N^{\mathrm{lens},ij}_\ell = \delta_{ij} \sigma_{e,\mathrm{tot}}^2 / n_i +\end{align} +where $n_i$ is the angular number density of galaxies in bin $i$ (we asssume equally weighted galaxies, and a +total number density over all bins of 20 galaxies per square arcminute) and $\sigma_{ei}=0.26$ per shear component, giving $\sigma_{e,\mathrm{tot}} = 0.37$, roughly matching that found in previous surveys \citep{des,desy3a,desy3b,kids,hsc}. + +This model does not include a number of theoretical effects that will be important in real data, including +intrinsic alignments, non-Gaussian covariance, and a range of effects on spectra at small scales, like non-linear +bias and beyond-Limber effects. Collectively these effects mean that our tests are exaggerating the constraining +power of small-scale signals, and increasing all our metrics (especially as our $\ell$ range is fixed with $z$). +Although this unrealistic aspect mostly affects algorithms equally, the relation between redshift, angle, and physical scale means that the exaggeration is especially strong for low redshift, and so it +could plausibly favour methods that create narrower bins in that range. + + + +\section{Method Details} \label{app:methods} +This appendix details the different methods submitted to the challenge. +Methods described as using optimized bin edges are those that appear as orange solid +lines in \autoref{fig:edges}; those without this note appear as dashed blue lines there. + +Method implementations used in the challenge may be found in the \textsc{grand\_merge} branch +of the challenge repository \url{http://github.com/LSSTDESC/tomo_challenge}. + +\subsection{ {\sc RandomForest} } \label{sec:randomforest} +This method was submitted by the challenge organizers and used a random +forest algorithm to assign galaxies. + +Random forests \citep{breiman2001} train a collection of individual \emph{decision trees}, +each of which consists of a set of bifurcating comparisons in which different features in +the data (in this case, magnitudes and errors) are compared to criterion values to choose +which branch to follow. Each ``leaf'' (end comparison) selects a classification bin for +an input galaxy, and the tree is trained to choose comparison features and comparison values +which maximize discrimination at each step and final leaf purity. + +Since decision trees tend to over-fit, random forests generate a suite of +trees, each randomly choosing a subset of features on which to train at each bifurcation. +An average over the trained trees is taken as the overall classification. + +In this implementation we chose nominal bin edges by splitting ensuring equal numbers of training set +objects were in each bin, and then trained the forest to map magnitudes, magnitude errors, and +galaxy sizes to bin indices. We use the {\sc scikit-learn} implementation of the random forest +\citep{scikit-learn}. + + +\subsection{ {\sc LSTM} } +\label{ClecioLSTM} +Methods \ref{ClecioLSTM} - \ref{ClecioEnsemble} were +submitted by a team of authors CRB, BF, GT, ESC, and EJG. All were built using TensorFlow and/or Keras, and +chose bin edges such that an equal number of galaxies is assigned to each bin, and trained the +network using the galaxies' magnitudes and colours. + +The LSTM method uses a Bidirectional Long Short Term Memory network to assign galaxies to redshift +bins. + +Recurrent Neural Networks (RNNs) \citep{schuster, medsker, pascanu} are a type of NN capable of +analyzing sequential data, where data points have a strong correlation with their neighbours. Long +Short Term Memory (LSTM) units are a particular type of RNN capable of retaining relevant +information from previous points while at the same time removing unnecessary data. This is achieved +through a series of gates with learnable weights connected to different activation functions to +balance the amount of data retained or removed. + +In some cases, relevant information can come both from data points coming before or after each point +being analyzed. In such cases, two LSTMs can be combined, each going in a different direction, to +create effectively a bidirectional LSTM cell \citep{schuster}. + +The Deep model is composed of a series of convolutional blocks (1d +convolutional layer with a tanh activation followed by a MaxPooling layer) followed by a +bidirectional LSTM layer and a series of fully connected layers. + +\subsection{ {\sc AutokerasLSTM}} +Autokeras \citep{autokeras} is an AutoML system based on Keras. Given a general neural network +architecture and a dataset, it searches for the best possible detailed configuration for the problem +at hand. + +We started from the basic architecture and bin assignment scheme mentioned in Section +\ref{ClecioLSTM} and let Autokeras search for the configuration that results in the lowest +validation loss. We kept the order of the layer blocks fixed, i.e., convolutional blocks, +bidirectional LSTM, and dense blocks. We left the other hyperparameters free, such as the number of +neurons, dropout rates, maxpooling layers, the number of convolutional filters, and strides. + + +\subsection{ {\sc LGBM} } +This method uses a Light Gradient Boosted Machine (LightGBM) \citep{lgbm} to assign galaxies to +redshift bins. + +LightGBM uses a histogram-based algorithm that assigns continuous feature values to discrete bins +instead of other pre-sort-based algorithms for decision tree learning. LightGBM also grows the trees +leaf-wise, which tends to achieve lower losses than level-wise tree growth. This method tends to +overfit for small data so that a \textit{max\_depth} parameter can be specified to limit tree depth. + + + +\subsection{ {\sc TCN}} +This method uses a Temporal-Convolutional network (TCN) \citep{baitcn} to assign galaxies to redshift +bins. + +Recurrent Neural Networks (such as LSTMs) are considered to be the state-of-the-art model for +sequence modelling. However, research indicates that certain convolutional architectures can achieve +human-level performance in these tasks \citep{dauphin}. + +TCNs are Fully Convolutional Networks with causal convolutions, in which the output at time +\textit{t} is convolved only with elements of time \textit{t} and lower in the previous layer. This +new approach prevents leakage of information from the future to the past. This simple model has one +disadvantage, in that it needs a very deep architecture or large filters to achieve a long history +size. + +By using dilated convolutions, where a fixed step is introduced between adjacent filter taps, the +receptive field of the TCN can be increased without increasing the number of convolutional filters. +Residual blocks \citep{resnet} are also used to stabilize deeper and larger networks. These +modifications cause TCNs to have a longer memory than traditional RNNs with the same capacity, and +also require low memory for training. + +We used the Keras implementation of TCN \citep{kerastcn} and chose bin edges such that an equal +number of galaxies is assigned to each bin, and trained the network using the galaxies' magnitudes +and colours. + +\subsection{ {\sc CNN} } \label{sec:cnn} +This method uses an optimized Convolutional Neural Network (CNN) to assign +galaxies to redshift bins. + +CNNs \citep{lecun2015deep} are layers inspired in pattern recognition types developed in mammals' brains. +They consist of kernels that are convolved with the data as it flows through the net. CNN-based +models have emerged as state-of-the-art in several computer vision tasks, such as image +classification and pose estimations, as well as having applicability in a range of different fields. + +We combine the convolutional layers with dimensionality reduction (pooling layers) and different +activation functions. Here, we used Autokeras to optimize a general convolutional architecture, +using the galaxies' magnitudes and colours to assign them to redshift bins, which were chosen such +that an equal number of galaxies were assigned to each. + + +\subsection{ {\sc Ensemble} } +\label{ClecioEnsemble} +This method combines different neural network +architectures to assign galaxies to redshift bins. + +Deep Ensemble models combine different neural network architectures to obtain better performance +than any of the nets alone. In this method, we used the Bidirectional LSTM optimized by Autokeras, a +ResNet \citep{resnet} and a Fully Convolutional Network (FCN) \citep{fcn}. The predictions of these +models were averaged to get the final predicted bin. + + + +\subsection{ {\sc SimpleSOM} } +The \textsc{SimpleSOM} algorithm submitted by author AHW utilises a self-organising map +\citep[SOM,][]{Kohonen:1982} to perform a discretisation of the +high-dimensional colour-magnitude-space of the challenge training and reference +datasets. + +We utilise a branched version of the {\sc +kohonen}\footnote{\url{https://github.com/ AngusWright/kohonen.git}} package +\citep{Wright/etal:2020b, Wehrens/Kruisselbrink:2018, Wehrens/Lutgarde:2007} +within R \citep{R}, which we integrate with the challenge's python +classes using the {\sc rpy2} interface\footnote{\url{https://rpy2.github.io}}. +We train a $101 \times 101$ hexagonal-cell SOM with toroidal topology on the +maximal combination of (non-repeated) colours, $z$-band magnitude, and so-called +`band-triplets'. For example, for the `griz' setup, our SOM is trained on the +combination of $z$, $g-r$, $g-i$, $g-z$, $r-i$, $r-z$, $i-z$, $g-r-(r-i)$, +$r-i-(i-z)$. This combination proved optimal during testing on the DC2 dataset, +as determined by the 3x2pt SNR metric. The training and reference data then +propagated into this trained SOM, producing like-for-like groupings between the +two datasets. We then compute the mean redshift of the training sample sources +within each cell and the number of reference sources per-cell. By rank-ordering +the cells in mean training-sample redshift, we construct the cumulative +distribution function of reference sample source counts, and split cells into +${n_{\rm tomo}}$ equal-N tomographic bins using this function. + +In addition to this base functionality, the \textsc{SimpleSOM} method includes a +mechanism for distilling $N_{\rm cell}$ SOM cells into $N_{\rm group}E\sigma^2$ (see Figure 12 of \citealp{Hatfield2020}). Cutting galaxies +removes some signal at the possible benefit of improving binning purity. As the +training and test data were sampled from the same distribution in this data +challenge we might not expect removing galaxies to give huge improvements in +binning quality, but cuts based on $E$ and $U$ might become more useful in +future studies where the training and test data have substantially different +colour-magnitude distributions. + +We used these settings in GPz for this challenge (see +\citealp{Almosallam2016a,Almosallam2016b} for definitions): x=100, maxIter=500, +maxAttempts$=50$, method=GPVC, normalize=True, and joint=True. + + +\subsection{{\sc JaxCNN \& JaxResNet} } + +These methods were submitted by the author AP. +They used optimized bin edges. + +\textsc{JaxCNN} and \textsc{JaxResNet} are convolutional neural network based algorithms that +map the relationship between the colour-magnitude data of galaxies to their bin +indices. Convolutional neural network (CNN) models, as described in section +\ref{sec:cnn}, consist of several layers, each consisting of a linear +convolution operator followed by polling layers and a nonlinear activation +function. Residual Network (ResNet) models take one step further and learn the +\textit{identity} mapping by skipping, or adding \textit{shortcut} connections +to, one or more layers \citep{resnet}. ResNet helps solve the vanishing gradient +problem, allowing a deeper neural network. + +\textsc{JaxCNN} uses 2-layer convolutional neural networks and \textsc{JaxResNet} uses a stack of +3 layers consisting of $1 \times 1, 3 \times 3$, and $1 \times 1$ convolutions +with shortcut connections added to each stack. Both methods use the Rectified +Linear Unit (ReLU) activation function under the ADAM optimizer \cite{adam} with +a learning rate of 0.001. + +We chose the learning algorithm for both methods to minimize the reciprocal of +the figure of merit $F$, where $F$ is defined in \autoref{eq:fom}. We implement +these models using the JAX-based Flax neural network library \cite{jax}. + + +\subsection{ {\sc NeuralNetwork 1 \& 2} } \label{sec:nn} +These methods were submitted by the author FL. +They used optimized bin edges + + +The {\sc NeuralNetwork} approach combines the two following ideas: +\begin{itemize} + \item Using a simple neural network to parameterize a bin assignment function $f_\theta$ taking available photometry as the input and returning a bin number. + \item Optimizing the parameters of $f_\theta$ as to maximize a target score, either the total SNR (\autoref{eq:snr}), or the DETF FoM (\autoref{eq:fom}). +\end{itemize} +The method directly solves the problem of optimal bin assignment given available photometry, to maximize the cosmological information, without estimating a redshift. + + +Details of the particular neural network are mostly irrelevant; the main difficulty in this approach is to be able to compute the back-propagation of gradients through the cosmological loss function to update the parameters $\theta$ of the bin assignment function. This is was made possible for this challenge by the \textsc{jax-cosmo} library \citep{jax-cosmo}, which allows the computation of both metrics using the JAX automatic differentiation framework \citep{jax}. + + +In practice, to parameterize $f_\theta$ we use a simple dense neural network, composed of 3 linear layers of size 500 with leaky\_relu activation function and output batch normalization. The last layer of the model is a linear layer with an output size matching the number of bins, and softmax activation. We implement this model using the JAX-based \textsc{Flax} neural network library \citep{flax2020github}. + +Training is performed using batches of 5000 galaxies, over 2000 iterations under the ADAM optimizer \citep{adam} with a base learning rate of 0.001. The loss functions $\mathcal{L}$ used for training directly derive from the challenge metrics, and constitute the only difference between the \textsc{NeuralNetwork1} \& \textsc{neurNetwork2} entries: + +\begin{itemize} + \item \textsc{NeuralNetwork1}: $\mathcal{L}_1 = 1 / S_{FoM}$ + \item \textsc{NeuralNetwork2}: $\mathcal{L}_2 = - S_{SNR} $ +\end{itemize} + + + + +\subsection{ {\sc PCACluster} } +This entry was submitted by author DG. +It used optimized bin edges. + +Principal Component Analysis (PCA) reduces the dimensionality of a dataset by +calculating eigenvectors that align with the principal axes of variation in the +data \citep{doi:10.1098}. {\sc PCACluster} uses PCA to reduce the flux \& colour +data set to three dimensions. + +To generate the PCA dimensions used by this method the PCA algorithm takes in +the $r$-band flux and $ri$ and $iz$ colours and outputs three principal +components. If the data set provides the $g$-band, the algorithm also uses the +$gr$ colour when determining eigenvectors. Tomographic bins are then determined +in this three dimensional space using a clustering algorithm where each +observation is assigned to a bin by determining which cluster centroid is +closest to that observation. + +In order to determine optimal centroid positions, clustering is framed as a +gradient descent problem that seeks to maximize the requested metric: either the +SNR or the FoM. This approach of identifying clusters using gradient descent is +inspired by the similar approach to K-means clustering in +\citet{NIPS1994_a1140a3d}. + +This entry uses {\sc jax\_cosmo} to take the derivative of the requested metric +and classification function combination with respect to the centroid locations +to calculate gradients and weight updates \citep{jax-cosmo}. The speed of +training PCACluster is directly proportional to the number of requested +centroids (the number of requested tomographic bins) and the amount of training +data used. + + + + + + +\subsection{ {\sc ZotBin and ZotNet} } \label{sec:zot} + +This pair of related methods was submitted by author DPK and its associated code is available at +\url{https://github.com/dkirkby/zotbin}. +It used optimized bin edges. + +The ZotBin method consists of three stages: preprocessing, grouping, and bin optimization. The ZotNet method +uses the same preprocessing, then skips directly to bin optimization. Both methods optimize the final bins to +maximize an arbitrary linear combination of the three metrics defined in \ref{sec:metrics}, using the JAX +library~\cite{jax} for efficient computation. The goal of ZotNet is to find a nearly optimal set of bins (for +a specified linear combination of metrics) using a neural network, at the expense of interpretability of the +results. The ZotBin method aims to perform almost as well as ZotNet, but with a much more interpretable mapping +from input features to final bins. + +Both methods transform the $n$ input fluxes into $n-1$ colours and one flux. The data are very sparse in this +$n$-dimensional feature space and exhibit complex correlations. The preprocessing step transforms to a new +$n$-dimensional space where the data is nearly uncorrelated and dense on the unit hypercube $[0,1]^n$. This is accomplished +by learning a normalizing flow~\cite{2019arXiv191202762P} that maps the complex input probability density +into a multivariate unit Gaussian, then applying the error function to yield a uniform distribution. Although +the resulting transformation is non-linear, it is invertible and differentiable, and thus provides an interpretable +smooth mapping. + +The second stage of ZotBin starts by dividing the unit hypercube $[0,1]^n$ from the preprocessing step +into a regular lattice of ${\cal O}$(10K) cells which, by construction, each contain a similar number +of training samples. Next, adjacent cells are iteratively merged into $M \sim 100$ groups of cells by +combining at each step the pair of groups that are most ``similar''. We define similarity as the product +of similarities in feature and redshift space. Redshift similarity is based on the histogram of redshifts +associated with each group, interpreted as a vector. + +The final stage of ZotBin selects linear combinations of the $M$ groups to form the $N$ output bins. This is +accomplished by optimizing the specified metric combination with respect to the $M\times N$ matrix of linear +weights. + +The ZotBin method defines a fully invertible sequence of steps that transform the input feature space into +the final bins, so that each bin is associated with a well-defined region in colour / flux space. The ZotNet method, +on the other hand, trains a neural network to directly map from the preprocessed unit hypercube $[0,1]^n$ into +$N$ output bins by optimizing the specified metric combination. The resulting map is not invertible, so less +interpretable, but also less constrained than ZotBin, so expected to achieve somewhat better performance. + +\subsection{ {\sc FunBins} } \label{sec:funbins} +This entry was submitted by author ABa. + +This method uses the random forest algorithm described in section \ref{sec:randomforest} to assign galaxies to tomographic bins, but modifies the target bin edge selection method. There are 3 options for determining the edges used to assign labels to the training data: \textit{log}, \textit{random}, and \textit{chi}. + +The first option, \textit{log}, calculates bin edges such that the number of galaxies in each bin grows logarithmically instead of being constant as in section \ref{sec:randomforest}. This option uses increasingly large bins for more distant galaxies and tests the relative importance of nearby galaxies. + +The second option, \textit{random}, draws the intermediate bin edges from a uniform distribution while fixing the outer edges to the limits of the data. This option is not theoretically motivated and designed only to study the sensitivity to the binning. + +The last option, \textit{chi}, calculates redshift bin edges whose corresponding comoving distances are equally spaced, using Planck15 \citep{Planck15} cosmology for the distance-redshift relationship. This should lead to roughly equal shot noise for the angular power in each bin. +This method was used in the scores shown in this paper. + +Once the bin edges are fixed using either of the methods above, the random forest is trained as described in section \ref{sec:randomforest}. + +\subsection{FFNN} +This entry was submitted by author EN. + +The method is a Feed Forward Neural Network (FFNN), a classic type of neural network. +This implementation used the Keras API in the TensorFlow library. Three components, a flattener, and two +dense layers of ReLu neurons, were optimized by ADAM on the sparse categorical cross-entropy of the classifications. +A StandardScaler was used to pre-process the data, and the training stopped when there was no improvement in the +validation loss for three consecutive epochs, to avoid overfitting. + +The network is trained using the galaxies' magnitudes, colours and band-triplets as well as their errors to assign them to +the redshift bins. +Prior to processing the training and validation data, the non-detection placeholder magnitudes (30.0) were replaced with +an approximation of the $1\sigma$ detection limit as an estimate for the sky noise threshold, where Signal to Noise ratio, +S/N, equals 1. We first compute the error equivalent of $dm = 2.5 \log(1 + N/S)$ where $dm \sim 0.7526$ +magnitudes for $N/S = 1$, and then fit a logarithmic model to the magnitude as a function of its error +for different bands in the training data. This gives us the magnitude corresponding to this limit +and in order to be consistent we use this value along with its error to replace the non-detections +everywhere during the process. + + + +\subsection{ {\sc MLPQNA} } +This entry was submitted by authors SC and MB. + +The Multi Layer Perceptron trained by Quasi Newton Algorithm +({\sc MLPQNA}; \citealp{Brescia12}), is a feed-forward neural network +for multi-class classification and single/multi regression use cases. + +The architecture is a classical Multi Layer Perceptron (MLP; \citealp{Rosenblatt1961}) +with one or more hidden layers, on which the supervised learning paradigm is run +using the Quasi Newton Algorithm (QNA), implemented through the L-BFGS rule +\citep{Nocedal80}. L-BFGS is a solver that approximates the Hessian matrix, +representing the second-order partial derivative of a function. Further, it +approximates the inverse of the Hessian matrix to perform parameter updates. +MLPQNA uses the least square loss function with the Tikhonov regularization +\citep{Tikhonov77} for regression. It uses the cross-entropy \citep{deBoer05} +and softmax \citep{Sutton98} as output error evaluation criteria for +classification. + +Besides several scientific contexts and projects in which MLPQNA has succesfully +been used, it was recently used as the kernel embedded into the method {\sc +METAPHOR} \citep{cavuoti20} for photo-z estimation, which participated in the +LSST Photometric Redshift PDF Challenge \citep{schmidt20}. + +The {\sc MLPQNA} python implementation used here +uses a customized Scipy version of the L-BFGS built-in rule. +It used two hidden layers with $2N-1$ and $N+1$ nodes respectively, +where $N$ is the number of input features (depending on the experiment). +The decay was set to 0.1. + + +\subsection{ {\sc Stacked Generalization} } \label{sec:stackgen} +This method was submitted by author JEC. + +\emph{Stacked generalization} consists of stacking the output of several individual estimators and +using a classifier to compute the final prediction. Stacking methods use the strength of each +individual estimator by using their outputs as input of a final estimator. This entry stacked +\emph{Gradient Boosted Trees} (GBT) classifiers with standard Random Forests (RFs), and then used a Logistic +Regression as the final step. + +A GBT is a machine learning method which combines decision trees (like the standard RF) +by performing a weighted mean average of individual trees \citep{Friedman:2002we,RefWorks:1634}. +The prediction $F(X)$ of the ensemble of trees for a new sample $X$ is given by +\begin{equation} +F(X) = \sum_k w_k F_k(X) +\end{equation} +where $F_k(X)$ is the individual tree answer and $w_k$ a weight per tree. Unlike the RF, the +tree depth is rather small and the training of the $k$-th tree is based on the errors of the +$(k-1)$-th tree. Like the RF, a randomly chosen fraction of features ($\approx 50\%$) is +omitted at each split, and this step is changed at each tree (leading to a Stochastic Gradient Descent +algorithm). GTB learning is essentially non-parallelizable and so cannot use a map-reduce paradigm, +unlike RF. It suffers from the opposite problem to RF's overfitting, and is subject +to high bias, so one generally combines many weak individual learners. + +The two methods have their own systematics; they notably differ in the feature importances. Stacking +the two is therefore especially effective. The submitted method combined 50 GBTs with +50 RFs using the {\sc SKLearn} {\sc StackingClassifier}. + +An iterative precedure was used to progressively change the target bin edges to optimize one of the metrics (FOMs or SNRs) between the trainings of the classifiers. In general, we recover different choices for each statistic, but the differences are relatively marginal. This procedure was done by hand for this challenge, but could be automated and applied to any kind of classifier. + +Although this entry stacked GBTs and RFs, the same approach can be used more generally, such as using +one classifier optimized for high redshift and another for low, or one classifier for an SNR metric +and a second for an FOM metric. This makes stacking approaches particularly flexible. + + +\section{Mistakes} \label{sec:mistakes} +The challenge organizers made a number of mistakes when building and running the challenge. +These do not invalidate our process or results, but we describe some of them here in the hope of +being useful for future challenge designers. + +\subsection{Splitting nominal bin choice from assignment} +As noted in the main test, there were two ways to obtain good scores in the challenge: +either a team could choose the best +nominal bin edges, or find the best method to put galaxies into those bins once they are chosen. +These two are not completely disconnected: some theoretically powerful choices of nominal edges +could prove impossible to assign in practice. But it would still have been useful to separate +the challenge into two separate parts, fixing the edges while optimizing classifiers, and vice +versa. We can retrospectively determine this since we understand the classifiers, but the picture +would have been clearer doing so in advance. + +\subsection{Infrastructure} +Since submissions could use a wide variety of libraries and dependencies, it was extremely +difficult after the challenge was complete to build appropriate environments for all the challenges +in order to run the methods on additional data sets. In retrospect, a robust and careful +continuous integration tool with a mechanism for entrants to specify an environment (for example, a +container or a {\sc conda} requirements file) could have been used to simplify this and ensure +all methods could be easily run by the organizers. + +One additional issue, though, was that many methods required GPUs to train in a reasonable time, +and specifying an environment on these systems can be more complicated. + +\subsection{Guidance on caching \& batch processing} +Since the training process for the challenge could be slow for some algorithms, many entries +(very reasonably) cached trained models or other values for later use. In some cases these +cached values were then incorrectly picked up by subsequent runs on new data sets, leading +to (at best) crashes and at worst silently poor scores\footnote{We checked for this problem in +our final results by running each method and checking for new files in the working +directory.}. +We should have provided an explicit +caching mechanism for entrants to avoid such issues. + +Additionally, the challenge supplied the data described in Section \ref{sec:data} to entrants, +and some assumed that it was safe to hard-code specific paths to them or +otherwise assume fixed data inputs. This led to problems when switching to new test data sets. +Again, a requirement enforced by continuous integration could have checked this. + +\section{Normalized metric scores} \label{app:metric_grids} +Figures \ref{fig:metric_grid_dc2_riz}, \ref{fig:metric_grid_buzzard_griz}, and \ref{fig:metric_grid_buzzard_riz} show metric scores normalized between random assignment and perfect assigment to equal number density bins for CosmoDC2/riz, Buzzard/griz and Buzzard/riz respectively: +\begin{equation} +S_\mathrm{norm} = \frac{S - S_\mathrm{random}} {S_\mathrm{perfect,eq} - S_\mathrm{random}} +\end{equation} + +\begin{figure*} +\includegraphics[width=1\linewidth]{results/metric_grid_dc2_riz.pdf} +\caption{Normalized scores for each method, following the scheme of Figure \ref{fig:metric_grid_dc2_griz} +but for CosmoDC2 with riz bands} +\label{fig:metric_grid_dc2_riz} +\end{figure*} + +\begin{figure*} +\includegraphics[width=1\linewidth]{results/metric_grid_buzzard_griz.pdf} +\caption{Normalized scores for each method, following the scheme of Figure \ref{fig:metric_grid_dc2_griz} +but for Buzzard with griz bands} +\label{fig:metric_grid_buzzard_griz} +\end{figure*} + +\begin{figure*} +\includegraphics[width=1\linewidth]{results/metric_grid_buzzard_riz.pdf} +\caption{Normalized scores for each method, following the scheme of Figure \ref{fig:metric_grid_dc2_griz} +but for Buzzard with riz bands} +\label{fig:metric_grid_buzzard_riz} +\end{figure*} + + +\section{Full 9-bin results tables} \label{app:tables} +Tables \ref{tab:full_dc2} and \ref{tab:full_buzz} show all calculated metrics when generating nine tomographic +bins for CosmoDC2 and Buzzard respectively. The \textit{ww} columns +show weak-lensing metrics, \textit{gg} show galaxy clustering, and \textit{3x} the full 3x2pt metric. +Methods above the horizontal line trained bin edges; methods below used fixed fiducial ones, though in some +cases did some hand-tuning of them before submission. In each section the highest scoring method is highlighted. + +As in table \ref{tab:cosmodc2}, some values are missing due to failure or time-out of the method (*) or +pathological bin assignments (-). Failure rates were higher for the 9-bin runs than for the lower bin counts. +\vspace{0.5cm} + +\renewcommand{\arraystretch}{1.8} +\begin{sidewaystable} +\vspace{10cm} +\begin{tabular}{ |l | c c c | c c c | c c c | c c c | c c c | c c c |} +\hline +\multirow{3}{*}{Method} & \multicolumn{9}{|c|}{riz} & \multicolumn{9}{c|}{griz} \\ +\cline{2-19} +& \multicolumn{3}{c|}{SNR} & \multicolumn{3}{c|}{$\sigma_8-\Omega_m$ FOM} & \multicolumn{3}{c|}{$w_0-w_a$ FOM} +& \multicolumn{3}{c|}{SNR} & \multicolumn{3}{c|}{$\sigma_8-\Omega_m$ FOM} & \multicolumn{3}{c|}{$w_0-w_a$ FOM} \\ +\cline{2-19} +& ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x \\ +\hline +\input{results/9bin_dc2.tex} +\hline +\end{tabular} +\caption{The 9-bin results for all metrics calculated for all methods on the CosmoDC2 sample. +\textit{ww} are weak-lensing metrics, \textit{gg} clustering, and \textit{3x} the full 3x2pt. +\label{tab:full_dc2} +} +\end{sidewaystable} + +\begin{sidewaystable} +\vspace{10cm} +\begin{tabular}{ |l | c c c | c c c | c c c | c c c | c c c | c c c |} +\hline +\multirow{3}{*}{Method} & \multicolumn{9}{|c|}{riz} & \multicolumn{9}{c|}{griz} \\ +\cline{2-19} +& \multicolumn{3}{c|}{SNR} & \multicolumn{3}{c|}{$\sigma_8-\Omega_m$ FOM} & \multicolumn{3}{c|}{$w_0-w_a$ FOM} +& \multicolumn{3}{c|}{SNR} & \multicolumn{3}{c|}{$\sigma_8-\Omega_m$ FOM} & \multicolumn{3}{c|}{$w_0-w_a$ FOM} \\ +\cline{2-19} +& ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x & ww & gg & 3x \\ +\hline +\input{results/9bin_buzzard.tex} +\hline +\end{tabular} +\caption{The 9-bin results for all metrics calculated for all methods on the Buzzard sample. +\textit{ww} are weak-lensing metrics, \textit{gg} clustering, and \textit{3x} the full 3x2pt. +\label{tab:full_buzz} +} +\end{sidewaystable} + + + + +\end{document} diff --git a/paper/results/9bin_buzzard.tex b/paper/results/9bin_buzzard.tex new file mode 100644 index 00000000..469bb7d4 --- /dev/null +++ b/paper/results/9bin_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 243.9 & 1659.7 & 1660.1 & 8.4 & 1728.2 & 5372.0 & 0.4 & 16.5 & 74.9 & 256.3 & 1826.0 & 1826.4 & 15.9 & 1462.7 & 5177.9 & 0.6 & 14.3 & 75.0\\ +{\sc JaxCNN } & -- & -- & -- & -- & -- & -- & -- & -- & -- & 258.6 & 1830.2 & 1830.5 & 15.5 & 2152.7 & 6143.8 & 0.6 & 21.2 & 95.4\\ +{\sc JaxResNet } & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & --\\ +{\sc NeuralNetwork1 } & \textbf{253.2} & 1729.1 & 1729.5 & \textbf{13.3} & \textbf{2168.6} & \textbf{7304.1} & \textbf{0.5} & \textbf{19.9} & \textbf{93.7} & \textbf{260.7} & 1773.2 & 1773.5 & \textbf{17.9} & 2502.8 & \textbf{7405.5} & \textbf{0.6} & 23.4 & \textbf{105.4}\\ +{\sc NeuralNetwork2 } & 251.5 & \textbf{1810.4} & \textbf{1810.9} & 12.6 & 1705.4 & 6279.2 & 0.5 & 16.0 & 76.5 & 258.9 & \textbf{1948.7} & \textbf{1949.0} & 14.1 & 1417.1 & 4962.9 & 0.5 & 14.0 & 73.9\\ +{\sc PCACluster } & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & *\\ +{\sc ZotBin } & 247.9 & 1674.3 & 1674.9 & 10.5 & 1584.9 & 5448.1 & 0.4 & 15.1 & 76.5 & 253.7 & 1787.2 & 1787.6 & 12.4 & 2084.0 & 6086.2 & 0.5 & 20.1 & 89.4\\ +{\sc ZotNet } & 249.7 & 1673.3 & 1673.9 & 11.7 & 1897.9 & 6755.9 & 0.5 & 17.4 & 86.0 & 256.3 & 1727.2 & 1727.6 & 13.4 & \textbf{2672.5} & 6686.8 & 0.5 & \textbf{25.0} & 98.4\\ +\hline +{\sc AutokerasLSTM } & -- & -- & -- & -- & -- & -- & -- & -- & -- & 255.4 & 1844.6 & 1845.0 & 11.5 & 1499.6 & 5123.5 & 0.5 & 14.4 & 72.2\\ +{\sc CNN } & 252.2 & 1724.5 & 1725.0 & 13.2 & 1335.4 & 4789.3 & 0.5 & 13.1 & 70.3 & 259.0 & 1814.3 & 1814.6 & 16.2 & 1364.9 & 4641.3 & 0.6 & 13.7 & 74.5\\ +{\sc ENSEMBLE } & 253.1 & 1761.4 & 1761.9 & \textbf{13.7} & 1470.2 & 5293.3 & \textbf{0.5} & 14.2 & 74.6 & 261.1 & 1901.2 & 1901.5 & 17.9 & 1609.7 & 5443.5 & 0.6 & 15.9 & 82.9\\ +{\sc FunBins } & 251.1 & 1412.5 & 1413.1 & 11.8 & 1297.3 & 4542.4 & 0.5 & 12.4 & 72.2 & 260.1 & 1588.2 & 1588.6 & 17.4 & 1913.5 & 6017.6 & 0.6 & 18.1 & 91.7\\ +{\sc GPzBinning } & \textbf{254.1} & 1561.6 & 1562.1 & 12.5 & 1328.6 & 4958.8 & 0.5 & 12.8 & 70.7 & 260.7 & 1788.9 & 1789.2 & 16.7 & 1524.0 & 5261.6 & 0.6 & 15.3 & 82.5\\ +{\sc IBandOnly } & 222.7 & 755.5 & 763.7 & 0.4 & 227.8 & 867.6 & 0.0 & 2.2 & 22.0 & 222.7 & 755.5 & 763.7 & 0.4 & 227.8 & 867.6 & 0.0 & 2.2 & 22.0\\ +{\sc LGBM } & 252.5 & 1732.6 & 1733.0 & 13.4 & 1345.8 & 4807.2 & 0.5 & 13.2 & 70.7 & 259.2 & 1814.6 & 1814.9 & 16.5 & 1382.5 & 4658.0 & 0.6 & 13.9 & 75.4\\ +{\sc LSTM } & 252.3 & 1724.0 & 1724.5 & 13.3 & 1330.7 & 4764.1 & 0.5 & 13.0 & 69.9 & 259.2 & 1815.0 & 1815.3 & 16.5 & 1366.0 & 4620.1 & 0.6 & 13.8 & 74.7\\ +{\sc MLPQNA } & 252.9 & 1757.1 & 1757.6 & 13.7 & 1479.6 & 5300.1 & 0.5 & 14.3 & 73.2 & 261.3 & \textbf{1917.1} & \textbf{1917.4} & 18.3 & 1659.0 & 5637.5 & 0.6 & 16.4 & 83.4\\ +{\sc Stacked Generalization } & 252.3 & 1682.0 & 1682.6 & 13.1 & \textbf{1748.2} & \textbf{6796.2} & 0.5 & \textbf{16.3} & \textbf{85.3} & 259.1 & 1779.7 & 1780.1 & 17.6 & \textbf{2254.6} & \textbf{7736.9} & 0.6 & \textbf{21.1} & \textbf{97.2}\\ +{\sc PQNLD } & 254.1 & 1609.2 & 1609.6 & 12.7 & 1406.6 & 5281.2 & 0.5 & 13.4 & 70.6 & 261.8 & 1858.2 & 1858.5 & 18.3 & 1611.9 & 5593.7 & 0.6 & 15.9 & 84.3\\ +{\sc Random } & 221.5 & 674.0 & 680.5 & 0.0 & 0.4 & 6.3 & 0.0 & 0.0 & 0.8 & 221.5 & 674.0 & 680.5 & 0.0 & 0.4 & 6.3 & 0.0 & 0.0 & 0.8\\ +{\sc RandomForest } & 252.1 & 1721.9 & 1722.5 & 13.1 & 1462.0 & 5272.6 & 0.5 & 14.1 & 72.5 & 261.3 & 1913.0 & 1913.3 & 18.2 & 1658.2 & 5647.6 & 0.6 & 16.3 & 83.5\\ +{\sc SimpleSOM } & 254.0 & 1608.6 & 1609.1 & 12.7 & 1415.2 & 5352.9 & 0.5 & 13.5 & 70.7 & \textbf{261.8} & 1830.6 & 1830.9 & \textbf{18.5} & 1622.2 & 5685.9 & \textbf{0.6} & 15.9 & 84.7\\ +{\sc FFNN } & 252.6 & 1744.7 & 1745.2 & 13.5 & 1465.8 & 5251.9 & 0.5 & 14.1 & 72.4 & 260.8 & 1910.9 & 1911.2 & 17.7 & 1668.3 & 5677.1 & 0.6 & 16.4 & 83.5\\ +{\sc TCN } & 252.3 & \textbf{1761.4} & \textbf{1762.0} & 13.4 & 1514.0 & 5414.2 & 0.5 & 14.6 & 74.6 & 259.1 & 1913.4 & 1913.7 & 16.4 & 1651.7 & 5613.3 & 0.6 & 16.3 & 82.4\\ +{\sc UTOPIA } & 252.1 & 1658.9 & 1659.3 & 12.1 & 1457.9 & 5354.9 & 0.5 & 13.9 & 73.6 & 261.2 & 1865.4 & 1865.7 & 17.2 & 1632.7 & 5637.6 & 0.6 & 16.0 & 83.1\\ diff --git a/paper/results/9bin_dc2.tex b/paper/results/9bin_dc2.tex new file mode 100644 index 00000000..51fce55f --- /dev/null +++ b/paper/results/9bin_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 349.5 & 1538.1 & 1540.0 & 25.4 & 1830.7 & 7919.6 & 0.7 & 16.2 & 101.6 & 348.1 & 1556.5 & 1558.1 & 21.5 & 1483.8 & 6603.1 & 0.6 & 13.9 & 100.3\\ +{\sc JaxCNN } & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & -- & --\\ +{\sc JaxResNet } & -- & -- & -- & -- & -- & -- & -- & -- & -- & \textbf{365.5} & 1608.2 & 1609.6 & \textbf{44.7} & 2409.0 & 6438.7 & \textbf{1.1} & 26.3 & 161.5\\ +{\sc NeuralNetwork1 } & 342.1 & 1513.0 & 1515.6 & 25.0 & 2043.7 & 8666.6 & 0.7 & 18.1 & 109.9 & 340.6 & 1468.6 & 1471.5 & 25.0 & 1793.6 & 7876.3 & 0.7 & 15.9 & 96.9\\ +{\sc NeuralNetwork2 } & 353.1 & \textbf{1742.6} & \textbf{1744.2} & \textbf{35.8} & 2440.7 & \textbf{10025.7} & 0.9 & 22.4 & 136.1 & 350.4 & \textbf{1841.7} & \textbf{1842.9} & 36.7 & 2882.6 & \textbf{11023.9} & 0.9 & 25.8 & 140.0\\ +{\sc PCACluster } & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & *\\ +{\sc ZotBin } & 350.0 & 1560.2 & 1562.2 & 29.1 & 2449.1 & 8013.3 & 0.7 & 23.3 & 135.3 & 357.9 & 1740.5 & 1741.8 & 38.1 & 2787.5 & 9546.9 & 0.9 & 26.2 & 154.7\\ +{\sc ZotNet } & \textbf{354.3} & 1574.0 & 1575.8 & 34.6 & \textbf{2604.4} & 8150.8 & \textbf{0.9} & \textbf{25.0} & \textbf{145.9} & 363.1 & 1732.6 & 1733.9 & 43.0 & \textbf{3278.9} & 9226.3 & 1.0 & \textbf{31.4} & \textbf{167.2}\\ +\hline +{\sc AutokerasLSTM } & -- & -- & -- & -- & -- & -- & -- & -- & -- & 364.3 & 1659.1 & 1660.7 & 44.6 & 1602.4 & 5864.7 & 1.0 & 15.8 & 98.4\\ +{\sc CNN } & 354.5 & 1628.9 & 1630.5 & 38.1 & 1808.9 & 7000.4 & 0.9 & 16.9 & 103.3 & 366.0 & 1731.1 & 1732.3 & 48.7 & 2074.6 & 7725.6 & 1.1 & 19.8 & 122.4\\ +{\sc ENSEMBLE } & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & * & *\\ +{\sc FunBins } & 355.7 & 1497.2 & 1499.2 & \textbf{39.8} & \textbf{3068.2} & \textbf{10959.1} & \textbf{0.9} & \textbf{25.6} & \textbf{141.8} & 367.9 & 1658.3 & 1659.7 & \textbf{54.0} & \textbf{3751.4} & \textbf{12668.2} & \textbf{1.2} & \textbf{31.4} & \textbf{167.2}\\ +{\sc GPzBinning } & 358.2 & 1505.4 & 1507.4 & 35.1 & 1825.8 & 7197.6 & 0.9 & 16.9 & 111.7 & 366.5 & 1700.7 & 1701.9 & 47.8 & 2129.8 & 8064.7 & 1.1 & 20.2 & 126.9\\ +{\sc IBandOnly } & 330.3 & 854.7 & 866.6 & 3.6 & 583.1 & 1829.9 & 0.2 & 6.1 & 57.3 & 330.3 & 854.7 & 866.6 & 3.6 & 583.1 & 1829.9 & 0.2 & 6.1 & 57.3\\ +{\sc LGBM } & 356.3 & 1638.9 & 1640.5 & 39.6 & 1896.2 & 7215.1 & 0.9 & 17.8 & 108.2 & 365.8 & 1734.4 & 1735.6 & 48.6 & 2122.0 & 7933.4 & 1.1 & 20.2 & 125.2\\ +{\sc LSTM } & 354.2 & 1629.1 & 1630.8 & 38.2 & 1818.0 & 7008.3 & 0.9 & 17.0 & 103.6 & 366.1 & 1729.3 & 1730.5 & 48.9 & 2125.5 & 7997.3 & 1.1 & 20.3 & 126.9\\ +{\sc MLPQNA } & 355.1 & 1674.8 & 1676.5 & 38.0 & 2177.1 & 8624.5 & 0.9 & 20.0 & 121.8 & 367.5 & 1809.2 & 1810.4 & 51.4 & 2388.7 & 9076.2 & 1.2 & 22.3 & 133.7\\ +{\sc Stacked Generalization } & 351.6 & 1670.1 & 1672.2 & 39.1 & 2036.3 & 8038.7 & 0.9 & 19.3 & 120.4 & 358.8 & \textbf{1837.8} & \textbf{1839.4} & 49.3 & 2601.7 & 9386.8 & 1.1 & 25.0 & 148.9\\ +{\sc PQNLD } & 358.7 & 1583.4 & 1585.1 & 36.4 & 1869.4 & 7666.6 & 0.9 & 16.8 & 105.4 & 368.2 & 1801.3 & 1802.5 & 52.9 & 2419.2 & 9353.9 & 1.2 & 22.4 & 133.8\\ +{\sc Random } & 323.5 & 646.3 & 670.1 & 0.0 & 0.6 & 17.7 & 0.0 & 0.0 & 1.2 & 323.5 & 646.3 & 670.1 & 0.0 & 0.6 & 17.7 & 0.0 & 0.0 & 1.2\\ +{\sc RandomForest } & 355.6 & 1687.5 & 1689.2 & 39.6 & 2156.0 & 8447.7 & 0.9 & 19.9 & 118.5 & 368.1 & 1823.9 & 1825.1 & 53.2 & 2448.6 & 9265.4 & 1.2 & 22.9 & 136.5\\ +{\sc SimpleSOM } & \textbf{358.7} & 1572.8 & 1574.4 & 36.7 & 1785.8 & 7244.5 & 0.9 & 16.0 & 98.5 & \textbf{368.4} & 1788.5 & 1789.7 & 53.8 & 2446.7 & 9279.8 & 1.2 & 22.6 & 134.8\\ +{\sc FFNN } & 355.2 & 1671.3 & 1673.0 & 37.7 & 2064.0 & 8170.0 & 0.9 & 19.0 & 114.7 & 367.3 & 1798.6 & 1799.8 & 50.9 & 2435.6 & 9332.9 & 1.1 & 22.7 & 137.2\\ +{\sc TCN } & 355.3 & \textbf{1693.1} & \textbf{1694.7} & 38.7 & 2055.4 & 7955.5 & 0.9 & 18.9 & 110.5 & 366.2 & 1814.3 & 1815.5 & 49.4 & 2401.1 & 9100.2 & 1.1 & 22.5 & 134.0\\ +{\sc UTOPIA } & 353.2 & 1612.4 & 1614.4 & 36.3 & 2022.5 & 8148.8 & 0.9 & 18.5 & 112.2 & 367.6 & 1807.4 & 1808.6 & 52.3 & 2481.2 & 9537.2 & 1.2 & 23.1 & 139.3\\ diff --git a/paper/results/StyleSheet.mplstyle b/paper/results/StyleSheet.mplstyle new file mode 100644 index 00000000..2c0a888e --- /dev/null +++ b/paper/results/StyleSheet.mplstyle @@ -0,0 +1,47 @@ +#lines +lines.linewidth : 1.0 +lines.linestyle : - +lines.color : black + +#fonts & text +font.family : serif +font.weight : normal +font.size : 10.0 +text.color : black +text.usetex : False + +#axes & ticks +axes.edgecolor : black +axes.linewidth : 1.0 +axes.grid : False +axes.titlesize : x-large +axes.labelsize : x-large +axes.labelweight : normal +axes.labelcolor : black +axes.formatter.limits : -4, 4 + +xtick.major.size : 7 +xtick.minor.size : 4 +xtick.major.pad : 8 +xtick.minor.pad : 8 +xtick.labelsize : x-large +xtick.minor.width : 1.0 +xtick.major.width : 1.0 +xtick.direction : in +xtick.minor.visible : True + +ytick.major.size : 7 +ytick.minor.size : 4 +ytick.major.pad : 8 +ytick.minor.pad : 8 +ytick.labelsize : x-large +ytick.minor.width : 1.0 +ytick.major.width : 1.0 +ytick.direction : in +ytick.minor.visible : True + +#legends +legend.numpoints : 1 +legend.fontsize : large +legend.shadow : False +legend.frameon : False \ No newline at end of file diff --git a/paper/results/bonus_metrics.ipynb b/paper/results/bonus_metrics.ipynb new file mode 100644 index 00000000..b4f45629 --- /dev/null +++ b/paper/results/bonus_metrics.ipynb @@ -0,0 +1,800 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# tomo\\_challenge bonus analysis\n", + "\n", + "_Alex I. Malz (GCCL@RUB)_" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import corner\n", + "import h5py\n", + "import scipy.stats as sps\n", + "import sys" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib as mpl\n", + "# print(mpl.rcParams.items)\n", + "mpl.use('Agg')\n", + "mpl.rcParams['text.usetex'] = False\n", + "# mpl.rcParams['mathtext.rm'] = 'serif'\n", + "# mpl.rcParams['font.family'] = 'serif'\n", + "# mpl.rcParams['font.serif'] = ['Times New Roman']\n", + "mpl.rcParams['font.family'] = ['serif']\n", + "mpl.rcParams['axes.titlesize'] = 25\n", + "mpl.rcParams['axes.labelsize'] = 20\n", + "mpl.rcParams['xtick.labelsize'] = 15\n", + "mpl.rcParams['ytick.labelsize'] = 15\n", + "mpl.rcParams['savefig.dpi'] = 250\n", + "mpl.rcParams['figure.dpi'] = 250\n", + "mpl.rcParams['savefig.format'] = 'pdf'\n", + "mpl.rcParams['savefig.bbox'] = 'tight'\n", + "mpl.rcParams['xtick.major.size'] = 10\n", + "mpl.rcParams['xtick.minor.size'] = 5\n", + "mpl.rcParams['xtick.direction'] = 'in'\n", + "mpl.rcParams['ytick.major.size'] = 10\n", + "mpl.rcParams['ytick.minor.size'] = 5\n", + "mpl.rcParams['ytick.direction'] = 'in'\n", + "\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# import make_figures\n", + "from make_figures import *\n", + "\n", + "toppath = '/global/cfs/cdirs/lsst/groups/WL/users/zuntz/tomo_challenge_data/results_data/'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "My ideas for plots are a meta-metric (like Figs. 5 and 8 from [the old qp paper](https://iopscience.iop.org/article/10.3847/1538-3881/aac6b5)), a rank-based plot across test conditions (some simplification of Francois' plots, perhaps like Figs. 5 and 6 from [the PLAsTiCC metrics paper](https://iopscience.iop.org/article/10.3847/1538-3881/ab3a2f)), and a visualization of an information metric for n(z) (maybe a bit like Fig. 12 from [the PLAsTiCC results paper](https://arxiv.org/pdf/2012.12392), but maybe something else entirely), the last of which would be important to support the claim about the impact of a reduction in filters that's currently justified only by eye from Fig. 3. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# n(z) overlap\n", + "\n", + "like Fig. 12 from [the PLAsTiCC results paper](https://arxiv.org/pdf/2012.12392), code adapted from [proclam](https://github.com/aimalz/proclam/blob/master/results_paper/disagreement.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "TODO: calculate the scalarized overlap metric values for all available outputs and plot those\n", + "\n", + "Moar files here:\n", + "\n", + "`buzzard_bins/UTOPIA_9_ugrizy_0.npy`\n", + "\n", + "`buzzard_bins/funbins_9_ugrizy_0.npy`\n", + "\n", + "`buzzard_metrics/UTOPIA_9_ugrizy_0.npy.yml`\n", + "\n", + "`buzzard_metrics/funbins_9_ugrizy_0.npy.yml`\n", + "\n", + "`dc2_bins/UTOPIA_9_ugrizy_0.npy`\n", + "\n", + "`dc2_metrics/UTOPIA_9_ugrizy_0.npy.yml`" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "funbins_ugrizy = np.load(toppath+'dc2_bins/funbins_9_ugrizy_0.npy')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "truth_dc2 = h5py.File(toppath+'dc2_testing.hdf5', 'r')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "totgal = len(truth_dc2['redshift_true'][:])" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.04830864298461816 changed bin\n", + "0.1475183691177714 changed bin\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def plot_funbins_nz(filename, riz_fn, griz_fn, ugrizy_fn, true_zs):\n", + " riz_file = riz_fn#\"./cosmodc2/bins/funbins_9_riz_0.npy\"\n", + " griz_file = griz_fn#\"./cosmodc2/bins/funbins_9_griz_0.npy\"\n", + " ugrizy_file = ugrizy_fn#\"./cosmodc2/bins/funbins_ugrizy.npy\"\n", + "# z_file = \"./cosmodc2/bins/z.npz\"\n", + "\n", + "\n", + " if not os.path.exists(riz_file):\n", + " print(\"Data not downloaded for n(z) plot - not overwriting\")\n", + " return\n", + "\n", + " fig, ax = plt.subplots(3, 1, figsize=(6, 9), sharex=True, sharey=True)\n", + " colors = plt.rcParams['axes.prop_cycle'].by_key()['color']\n", + "\n", + " riz = np.load(riz_file)\n", + " griz = np.load(griz_file)\n", + " ugrizy = np.load(ugrizy_file)\n", + " z = true_zs#np.load(z_file)['arr_0']\n", + " \n", + " print(str(len((ugrizy - griz)[ugrizy - griz > 0])/len(ugrizy))+' changed bin')\n", + " print(str(len((ugrizy - riz)[ugrizy - riz > 0])/len(ugrizy))+' changed bin')\n", + "\n", + " nbin = 9\n", + "\n", + " outinfo = {}\n", + " sharebins = np.arange(0., 3.01, 0.01)\n", + " outinfo['riz'] = []\n", + " for i in range(nbin):\n", + " w = np.where(riz == i)\n", + " weight = np.repeat(1e-5, w[0].size)\n", + " ax[0].hist(z[w], bins=sharebins, histtype='stepfilled', alpha=0.3, ls='-', color=colors[i], weights=weight, lw=1)\n", + "# ax[0].set_title('riz')\n", + " outinfo['riz'].append(z[w])\n", + " outinfo['griz'] = []\n", + " for i in range(nbin):\n", + " w = np.where(griz == i)\n", + " weight = np.repeat(1e-5, w[0].size)\n", + " ax[1].hist(z[w], bins=sharebins, histtype='stepfilled', alpha=0.3, ls='-', color=colors[i], weights=weight, lw=1)\n", + "# ax[1].set_title('griz')\n", + " outinfo['griz'].append(z[w])\n", + " outinfo['ugrizy'] = []\n", + " for i in range(nbin):\n", + " w = np.where(ugrizy == i)\n", + " weight = np.repeat(1e-5, w[0].size)\n", + " ax[2].hist(z[w], bins=sharebins, histtype='stepfilled', alpha=0.3, ls='-', color=colors[i], weights=weight, lw=1)\n", + "# ax[2].set_title('ugrizy')\n", + " outinfo['ugrizy'].append(z[w])\n", + " ax[0].set_ylabel('riz')\n", + " ax[1].set_ylabel('Counts / $10^5$ \\n griz')\n", + " ax[2].set_ylabel('ugrizy')\n", + " ax[2].set_xlabel('Redshift')\n", + " ax[0].set_xlim(0, 3)\n", + " plt.minorticks_on()\n", + " fig.tight_layout()\n", + " fig.subplots_adjust(hspace=0.03)\n", + " fig.savefig(filename)\n", + " plt.show()\n", + " plt.close(fig)\n", + " return(outinfo)\n", + " \n", + "classified_redshifts = plot_funbins_nz('nzbinned_dc2_funbins.pdf', toppath+'dc2_bins/funbins_9_riz_0.npy', toppath+'dc2_bins/funbins_9_griz_0.npy', toppath+'dc2_bins/funbins_9_ugrizy_0.npy', truth_dc2['redshift_true'][:])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "sharebins = np.arange(0., 3.01, 0.001)\n", + "binned_redshifts = {}\n", + "for key in classified_redshifts.keys():\n", + " binned_redshifts[key] = []\n", + " for v in classified_redshifts[key]:\n", + " binned_redshifts[key].append(np.histogram(v, bins=sharebins))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def diff_meas(key, ref_bin_no, comp_bin_no):\n", + " overlap = 0\n", + " for grid_ind, hist_val in enumerate(binned_redshifts[key][ref_bin_no][0]):\n", + " overlap += min(hist_val, binned_redshifts[key][comp_bin_no][0][grid_ind])\n", + " return overlap / totgal" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "all_overlaps = {}\n", + "for i, key in enumerate(binned_redshifts.keys()):\n", + "# for j in range(3)[i+1:]:\n", + "# comp_key = list(binned_redshifts.keys())[j]\n", + " all_overlaps[key] = np.zeros((9, 9))\n", + " for ref_bin_no in range(9):\n", + " for comp_bin_no in range(ref_bin_no):#(9):\n", + " metric = diff_meas(key, ref_bin_no, comp_bin_no)\n", + " all_overlaps[key][ref_bin_no][comp_bin_no] = metric" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# for i, key in enumerate(all_overlaps.keys()):\n", + "# print(key, np.sum(all_overlaps[key]))" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/global/homes/z/zuntz/.conda/envs/jaz-gpu/lib/python3.7/site-packages/ipykernel_launcher.py:8: RuntimeWarning: divide by zero encountered in log\n", + " \n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2MAAAGaCAYAAACCM5vxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABHdUlEQVR4nO3deZgcVbn48e+bhC0BAoEkk7CFJSAgyBLgiiSELbJ45QJXQOOFsG8KSNSLIhJRQGQNLiDIJuCPRUBUFFnDqhAWxQsKYV8DCTthyXZ+f1TPMDPpznRnurt6er6f55mnp6tP1XmrZuadfrtOnYqUEpIkSZKk+uqTdwCSJEmS1BtZjEmSJElSDizGJEmSJCkHFmOSJEmSlAOLMUmSJEnKgcWYJEmSJOXAYkzdEhFbR8TMiLguIiLveCSpHOYuSY0sItaNiBcj4t6IWDLveFQ7FmPqrv8GVgB2AwblHIsklcvcJamR7QysDGwJrJ9zLKqhfnkHoB7vPGBj4O6U0ht5ByNJZTJ3SWpk/w/YEXgReCTnWFRDkVLKOwZJkiRJ6nUcpihJkiRJObAYU5uIGBERqdPX2IhYPyKuiIhXImJukTZtbTtt75KFtO38tUQ+ey2pkUTE0hHxw4h4IiI+iog3IuKOiNizRI6aUGHeKprnOsVg7pKaSETs2Plvt9PrLUX+tkcU2c7iEfHNiHg0Ij6MiLcj4q8RcUhE9CmWnwrrFctbK0fE+RHxfETM7iJHTegUx6QKctQ6ETGlq/dtJbbZoV/VhsWY2nsZ2KDw1epzwO+AKcAXgS8Drxde69y2mBvatWv/tTswt9DmgpTSx92OXlKPFhFDgL8B3wNeBb4EjAMuBH4InNSu+efJcsn1VJa3iuW5YsxdUvO4h+zvd/8Sr88svP75UhuIiP7AzcBpwHxgH2Bb4PTCdi9r13z/wvZ+V3jemj9eKTwfSZaf/k02mdBuwLR263duX8yDFM9R2wDvFdr8BXgS2K8Qa2sR+q1C26nttveLwrK/FZa3j1815AQeapNSmgP8H0B8MtPzN4FNUkrPFp4/GBEjgZNSSp3bFvN2a7tWkU3RejnZ798/gCOrtQ+SerSLyWYNux/YoZCTAB6KiJuAf7Zr+2RK6bnC9+9A2XmrWJ4rxtwlNYmU0vvA/0XEiiVen1t4/f2FbOY0YGvgWWBMSundwvKHI+JPZHmr1bPt80e790utOe2bhW20rRMRA4ErSrQvZlaRHBXAn4BlgJeAr6ZscohngWcj4maygnOHlNLpnY7B6xGxFLA5sF/nbat2PDOmrlzR7g1Nq3OA1ctY98rCV2fnAJ8B3gX+O6X0UfdClNTTRcRmZFM5wydFU5uU0kzgp2Vurjt5C8xdktqJiOHAwYWnZ7UrxABIKX0I/LiCTd7SvhAruI4sR71Uxvo3A+cWWf4dshkY5wJ7FfJme78oPO4QEWsVWf9Q4E3g6jJiUJV4ZkxduafzgsInTAv79Ki13U2dl0XEeOCgwtMDUkpPdTtCSc1g13bf31Gizd1lbmuR81ahrblLUns788l75ttLtCk3P0HxHPUR8Fw5K6eU7uu8LCK2Bk4sPP1OsTbAH4HngdWAw4CJ7dZfnGx45UV+0FRfnhlTV2ZUa0MR8Sngl4WnP00p/bZa25bU461XeJxZKJyKmV7mtqqWt8DcJaktP0Hpgqnc/ATVz1FDyO5L1hf4fechiK1SSvOB8wtP9ysMS2z1JWBFsnswqo4sxtSVedXYSOHC198CA4AHyMZLS1KrZQuPHy6kzcKun2ivKnkLzF2SgE/yE5TIUZ2HVnehmjmqD9m1ZsPICsUJXazyK2A2sDzZ5EatDgf+XGSIt2rMYkz18guyC/PfAvZMKc3OOR5JjaX1Goz+C2mzWD0C6cTcJfUepS7faX+NWNEcFRF55CeA7wPbkxVYX0opvbWwximl14FrC08PB4iIDYEtgZ/XME6VYDGmmouI/YB9yaZU3Sel9HzOIUlqPI8XHleIiGVKtGmpVzBg7pKaUNuHKSXuEVh0tkU+yU8AI0q0qWt+AoiI7YDjC0+PSSk9WOaqrRN5bBoRm5MVZU8DC1wvq9qzGFNNRcSngZ8Vnp6WUvpjkTa/jYj16xuZpAZzQ7vvtynRZnQ9AgFzl9SkXm33/fAir29eYr0/8cn9Bbct0aZu+QkgIoYBvyF7L391SmmBs1oR8YvodFN7gJTSPcCjhaffAcYD5xWmwVedWYypZiJiaeAaslP69wDHlWi6BzC4XnFJajwppalkb3gAvtt5yE/h/kCH1yMWc5fUtJ4ju/E7dCqqCpNZHFJspZTSK3wy8cXREdH+GrLWdb9d1UgXIiL6kk3YMYTsps4Hlmi6M6XP5LVOjf9fZMMzL6pehKqEU9urg8Knwe2tHhEzgdkppSfbtVsMWKdE25dSSm+TzT72KbJPk34FjO3iJquSerf9yKa13wK4OSLOAF4B1gW+RzbL1w87r1Ru3iq0NXdJvVRKKUXEyWTXRp1dKKIeICtqvg1cAvyk0Hztwgczz6aUZgHfAj4NjAHuiogfkQ3tGwEcS/YBzmeK9RsRawOL88l1ryu15q1iN1dul9M6t3+9cM3XiWQ3oIYsX21RIkctuZDDcTlwKtnkJFemlN5cSFvVUHhGUu1FRKlfiOdTSiPatRtBdkf3YvZLKV2ykG0Vs01KaUoF7SU1ocL1Yv8L7AWsSnZvsAfJ3iA9S/bmB2ClwqfVZeetQtsRmLukXi0iJgBHkn3Q8zEwFfgR2T24OueHtr/xwr24jgL2AUYCHwH/JLsh/W/5ZJbEz7W/z1dEPEd2b68FpJQWqKIWkoN+kFKatLDtFbFfSumSYi9ExM/JRhxsXhidoBxYjEmSeoSI2AR4iOwNz4CU0sc5hyRJAETEIOCNwtORPeHG8BHxW2DVlFKpa+VUB14zJklqCBGxbUQcvJAmowqPD1qISaqniNg4IhZ2XVhrfpreQwqxIcAXcTr73FmMSZIaxRjgp4WhhB0Ubr58VOHpGfUMSpLIrgc7NSI+2/mFwoQarYXamXWNqkwRcX5EbN1u0deAN4GrcgpJBU7gIUlqJIsDUyLiJ8Dfya7n+DRwDLAe8JOU0jX5hSepl/t9IT/9DZgFrEVW2Iwmm+GwUT8s2hZYNyK+BawJfJPs3mQf5RuWvGZMktQQCsNmdgO+AKwNDCWbXn4G8Ffg3JTSbflFKKm3Kkxnvyvwn2QfEA0lm4nwTbJJhi5KKV2bX4QLFxFXAJ8ni/kVsnx6ar5RCSzGJEmSJCkXNR+muOKKK6YRI0bUuhtJdfTQQw/NTCn16Jvdmpuk5tMMuQnMT1IzKpWfal6MjRgxggcffLDW3Uiqo4h4Pu8YusvcJDWfZshNYH6SmlGp/ORsipIkSZKUA4sxSZIkScqBxZgkSZIk5cBiTJIkSZJyYDEmSZIkSTmwGJMkSZKkHJRVjEXEehFxa0TcGxGPRMTJEVHzafElqSvmJ0mNyNwkqRxdFmMRsSJwB/C7lNLngK2AXYAzahybJC2U+UlSIzI3SSpXOWfGjgICOBcgpTSLLJkcERHDaxibJHXF/CSpEZmbJJWlnGJsZ+DBlNK8dsvuA/oC42oSlSSVx/wkqRGZmySVpZxibC3glU7LXi48jqxuOJJUEfOTpEZkbpJUlnKKsaWBjzsta30+oLrhSFJFzE+SGpG5SVJZyinG3geW6LSs9fmsYitExMER8WBEPDhjxozuxCdJC1NRfjI3SaoT3ztJKks5xdhTQOeLTVufTyu2Qkrp/JTSqJTSqMGDB3cnPklamIryk7lJUp343klSWcopxv4EjIqIvu2WbQnMA26uSVSSVB7zk6RGZG6SVJZyirFzgAQcAhAR/YFjgJ+nlDpfnCpJ9WR+ktSIzE2SytJlMZZSmgFsC+wREfeSTc16E/DNGscmSQtlfpLUiMxNksrVr5xGKaXHgO1qHIskVcz8JKkRmZsklaOcYYqSJEmSpCqzGJMkSZKkHFiMSZIkSVIOLMYkSZIkKQcWY5IkSZKUA4sxSZIkScpBWVPbd8dLD73FxLiq1t0AcEbaqy79SOr5XnvkTc5a5oq69PWN98bXpR9JzeGtf87gqjXPrUtfez19WF36kVScZ8YkSZIkKQcWY5IkSZKUA4sxSZIkScqBxZgkSZIk5cBiTJIkSZJyYDEmSZIkSTmwGJMkSZKkHFiMNbERI0YwaNAgWlpa2r769u1L3759OywbOHAgY8eOrWtsTzzxBC0tLSy11FJERF37roWLL7647fjW+1hKPZH5qX7MT1L5zE31Y27KWIw1ueuuu47p06e3fa2yyiqsssoqHZZNnjy54u2OHTuWESNGLHJc66yzDtOnT2evvZrjRt377bdf2/GVVB7zU32Yn6TKmJvqw9yUsRiTJEmSpBz0yzsA1c5tt93GsGHDumy32267se2229YhIknKmJ8kNSJzk+rNM2NNbM0116R///5dths4cCCrrroqAFdeeSWbb745Q4YMYciQIey8885MnTq1rW3reOX77ruPF198sW3s9IYbbtjW5tJLL2XcuHGsuuqqLL/88owcOZIf/ehHzJ07t9v7NG3aNPbee2+GDRvGkCFD+PSnP80555xDSgnIxh8vt9xyRAQDBw5ks802a1t31113ZeDAgSy55JLsvvvubcunTp3KTjvtxKBBgxg0aBCbbLIJF154YYd+119/fQYOHEhE8Je//IWJEyey5ppr0rdv3y7Hbf/jH//goIMOYuTIkQwdOpTBgwez55578swzz3Rot+OOOzJo0CAigvPOO49jjjmGNdZYg2WXXZZNN92Um2++ubuHT2oY5ifzk9SIzE3mpnqzGFObH//4x4wfP54jjjiC1157jeeff57VV1+d0aNHc/vttwOfjFfecsstO4yffvTRR9u2M3HiRDbYYAOmTZvGm2++yXnnncdPfvITjjzyyG7F969//YstttiCjz/+mH//+9+8/vrrnH766Rx77LEcfPDBQDb++KGHHgJg77337pAMb7jhBsaPH8/3v/99rrvuOgCmTJnC6NGjGTFiBC+99BKvv/46Rx99NAcffDAnnHBC27qPPfZY2/jw448/njFjxvDUU0/x5z//ucu4L7vsMv76179yyy238Nprr/Hoo48yc+ZMRo8ezdtvv93W7qabbmqLa9KkSayxxho88cQTvPrqq3zqU59il1124c477+zWMZR6KvOT+UlqROYmc1N3WYwJgOeee47vfe977LTTTuy7775EBEsttRRnnnkmSy+9NAcddBDz5s0ra1ubb745p5xyCksssQQRwXbbbcfhhx/OBRdc0OEPqFJf//rXee+99zj33HMZOHAgkH0isv/++/OrX/2KKVOmANmnWqNHj+aqq67iww8/bFv/o48+4uqrr2afffYBYP78+Rx88MG0tLRwzjnn0L9/f/r168c+++zDHnvswSmnnML06dMXiGPUqFHsuuuubft21llnLTTuVVZZhZNPPrntot1hw4bxi1/8gldeeYXLL7+86Dqf/vSn+drXvsZiiy3GgAEDmDx5MhHBMcccU+lhk3o885P5SWpE5iZzUzVYjAmAa6+9lnnz5vGFL3yhw/IllliCcePG8cwzz7R9atKVP/3pTyy++OIdlq299trMnTuXJ554YpHimzlzJrfffjubbropLS0tHV774he/CMDVV1/dtmy//fbjnXfe4frrr29b9rvf/Y5Ro0ax8sorA/DII48wbdo0ttlmGxZbbLEO29xss82YM2dO26da7Y0ZM6bt+759+3L00UcvNPajjjqqLcZWa6+9NpB9alRM53HoK664IptvvjkPP/wwr7zyykL7k5qN+cn8JDUic5O5qRosxgTAU089BVD0otXhw4d3aNOVRx55hC9/+cusvfbaDBkyhJaWFr7xjW8AdPi0pRJPP/00KaWy4/vSl77EgAEDuPjii9uWXXTRRey3335tz1vbX3PNNR3uHdLS0sKpp57KgAEDin66M2TIkIpif+edd/jBD37Axhtv3Lb91phLHY+hQ4cusKw1kT777LMV9S/1dOYn85PUiMxN5qZqcDZFAbRdxFnpa5099NBDbLnllowZM4ZbbrmF1VZbDYBLLrmkwx9zreNbeuml+e///m8uu+wyXnzxRQAefvhhfv/73y/Q9sADD+Tss88uO5Y+fcr/DCOlxA477MATTzzBtddey9ixY+nXL/uza4YbNkr1YH46u+xYzE9S/Zibzi47FnNTaZ4ZE/DJqd9ip3FfffVVAEaOHNnldi677DJmz57NSSed1JZMqmHkyJFEREXx7bfffsyfP59LL72USy+9lD333JMll1yy7fXWfX755ZeL9nnHHXcwY8aMbsX9j3/8g6lTpzJ+/Hi23377tmTSlddee22BZa2fNK2++urdiknqacxPCzI/SfkzNy3I3FQ5izEBsPvuu9O3b19uvPHGDss//vhjbr75ZtZcc0023XTTtuUDBgzoMN3qcccdxyOPPMISSywBLPjJxQsvvNCt+FZYYQW23XZbHnrooQVOf7d+YrPnnnt2WD5mzBjWWGMNLr300qKfLm200Uass8463Hzzzbz//vsdXnvggQcYN25c2RfelrKox6P1gtpWM2fO5IEHHmDTTTdtO00v9RbmJ/OT1IjMTeamarAYEwAjRozgRz/6EX/+85/59a9/TUqJjz76iIkTJ/Lee+9x/vnndzjFvO666/L6668zc+ZMnn32WX7yk58QEW2J6fjjj2fmzJkA3H///ZxzzjndjvGnP/0pyyyzDIcffjjvvPMOAH/5y1+46KKLOPDAA9l66607tI8IJkyYwFNPPcWSSy7Z4b4Zra9fcMEFzJ49m0MPPbRttqLHH3+cCRMm8K1vfWuBC14rtfbaa7Phhhty+eWXc++99wLw1ltv8bWvfW2h67300kv84he/YM6cOXzwwQccddRRpJQ444wzuhWP1BOZn8xPUiMyN5mbqsFirJf4/ve/T0tLCy+++GLbDQdPP/30Dm2OPfZYLr/8cn76058ydOhQVlllFZ5++mnuvvvuBWaomThxImPHjmXddddlzJgxnHDCCWy00UZsscUWXHfddbzxxhusvvrqrLvuupxxxhkcccQRQPYp0n777dd2A8SrrroKyC6wPOmkkxa6D+uuuy4PPPAAiy22GOussw5DhgzhmGOO4ZRTTuH8888vus6+++5Lnz59mDBhQtHXR48ezX333ce7777LWmutxfDhw/nKV77CkUce2SGesWPHctRRR7XtQ0tLC2+++Wbb6xdffHHb8b3vvvtoaWnhjjvuoG/fvvzhD39gp512Yvfdd2ellVZip512aovnqquuoqWlhXfffXeB4ztjxgzWW289Wlpa+Pe//82NN964QNKUmoH5aULR181PUr7MTROKvm5uqq6o5ALDRdESa6bxnFzTPlqdkfaqSz9SrUyZMoVtttmGiy++uGQSbAQR8VBKaVTecXTHKn3XSMf0/2Fd+vrGe+Pr0o9USz0hPzVDbgJYc4nV0skrH1uXvvZ6+rC69CPVSk/ITVA6P3lmTJIkSZJyYDEmSZIkSTmwGJMaxI477sjuu+8OZHee32STTXKOSJIy5idJjagZcpM3fZYaxE033ZR3CJJUlPlJUiNqhtzkmTFJkiRJykHNz4z1IbF039rO2Nhqm34X1qWfVnfMPaCu/UmqnqWWnM3667xUl772jd/UpZ9Wl6av1LU/SdXVf5kP2Gz0I3Xp64R+V9aln1Y/mLt3XfuTGp1nxnqxuXPnctJJJ7HmmmsyZMgQ1ltvPc4777xF3t7777/PaqutRkTw3HPPLfD6lClTWGqppWhpaVnga+LEiSW3e9NNN7HSSisxduzYRY5NUs9Szfy0KDnknHPOabv5abW3LannqlZuuuOOOxg9ejRDhgxh2LBhHHjggbzxxhsl2z/00EPsvvvurLrqqgwaNIgRI0aw9957M23atAXazp49m1NOOYUNNtiAYcOGseKKK7LFFltw1llnVRynas9irBfbf//9mTx5Mtdeey2vv/46kydP5hvf+Abf//73F2l7xx13HC+88MJC2+y1115Mnz59ga9id0efNWsWhx9+OIceeiivvPLKIsUkqWeqRn5a1Bzy4osvctxxx9Vk25J6tmrkpptvvpkddtiBL3zhC0yfPp1HH32Uxx57jDFjxvD+++8v0P53v/sd2267LXvttRfPPvssb7zxBscffzxXX301TzzxRIe2H374Idtttx333nsvN910E6+++iqPPvooAFdccUX3dl41YTHWS91+++1cdtllTJo0iY022giAHXbYgcMOO4yTTz656CctC3P//fdz+eWXM27cuKrFeMwxx/Dhhx+2JRFJvUO18tOi5pDDDjuMnXfeuSbbltRzVSM3zZ07l8MOO4xNN92U//3f/6VPnz4MHjyYX/7ylzz++OOcdtppHdq/9tpr7Lvvvpx44onstdde9O3bl4jggAMOYO+992a55Zbr0H7SpEk8/fTTXHPNNay00koADB8+nFNPPZX11luvKsdB1WUx1ktdcMEFAG3TgbbaY489mDdvHpdccknZ25ozZw4HHXQQp5xyCsOGDatajMcffzwXX3wxyy67bNW2KanxVSs/LUoOufLKK/nXv/7FpEmTqr5tST1bNXLTbbfdxjPPPMNuu+3WYfmGG27IWmutxYUXXkhKn8y1cO655zJr1iz23XffBbb1m9/8hq222qrt+axZs/j5z3/Ol7/8ZZZaaqkObceOHcuvf/3rLuNT/VmM9VJ33XUXgwcPpqWlpcPyz3zmMwDceeedZW/r1FNPZbnlluOggw6qaowrr7xyVbcnqWeoVn6qNIe8+eabHH300fzyl79c4I1Md7ctqeerRm666667gKz46uwzn/kML7/8Mk8//XTbst///vesueaaC5wBK+a2225j1qxZjBo1qsu2ahwWY73QrFmzeOWVV4qexVp66aVZZpllyh4G9OSTT3Laaadx/vnnExFdtn/qqafYY4892i583Wqrrbj44osr3gdJzama+alSEydOZMcdd2T77bevyfYl9VzVyk1PPvkkQNHtDB8+HKBtO/PmzeOxxx5j2LBh3HrrrWyzzTYMHTqU1VZbjQkTJiwwWdo//vEPAAYMGMA3v/lN1lprLQYPHswWW2zBhRfWd8Zxlc9irBd65513AOjfv3/R1/v378/bb7/d5XZSShx00EFMnDiRT33qU2X1/dxzz3HIIYcwbdo0/v3vf7PTTjtxwAEHcOihh5Ydv6TmVa38VKnbbruNG2+8sehkQpJUrdy0sO20LmvdzltvvcXs2bP55z//yQEHHMAPf/hDXn75Za6//nruvfdeNt988w4Tp7322msAHHDAAcyZM4epU6fy9NNPs+OOO3LggQdy7LHHlr2/qh+LsV6snDNZC3PBBRcwc+bMsv+4P/vZz/Kvf/2LcePG0adPHwYNGsRxxx3Hbrvtxi9/+UvuueeebsUjqXl0Nz9V4sMPP+SQQw7hrLPOYoUVVqhbv5J6nmrlpnK289FHHwHZEOqTTz6Zrbbain79+rHJJpvw05/+lBkzZnDCCScs0H755ZfnrLPO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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "colMap = plt.cm.plasma_r\n", + "fig = plt.figure(figsize=(15, 6))\n", + "# heights = [5, 1, 1]\n", + "grid = fig.add_gridspec(ncols=3, nrows=1)\n", + "# fig.suptitle('funbins DC2 cross-bin n(z) log-overlap measure')\n", + "for i, key in enumerate(binned_redshifts.keys()):\n", + " ax = fig.add_subplot(grid[0, i])\n", + " img = ax.imshow(np.log(all_overlaps[key]), cmap=colMap, vmin=-10, vmax=-2)\n", + " ax.set_title(key)\n", + " total_overlap_frac = np.sum(all_overlaps[key])\n", + " ax.text(3, 2, f\"Total overlap\\n {total_overlap_frac:.3f}\", fontsize=18)\n", + " ax.set_xlabel('Bin')\n", + "\n", + " \n", + "fig.subplots_adjust(bottom=0.05)\n", + "cbar_ax = fig.add_axes([0.15, 0.0, 0.7, 0.04])\n", + "# ax=fig.add_subplot(grid[2, :])\n", + "fig.colorbar(img, cax=cbar_ax, label=r\"$\\log{(f_\\mathrm{mis})}$\", orientation='horizontal')\n", + "\n", + "# fig.tight_layout()\n", + "fig.subplots_adjust(hspace=0.0)\n", + "plt.savefig('nzoverlap_dc2_funbins.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# cross-metric comparison plot\n", + "\n", + "TODO: triangularize this, include ratio of n(z) overlap metrics? just one overlap metric?" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def load_table(base):\n", + " N = np.array([3, 5, 7, 9])\n", + " data = []\n", + " for name in method_names:\n", + " for i, bands in enumerate(['riz', 'griz']):\n", + " for n in N:\n", + " row = [name, bands, n]\n", + " fn = base+'/metrics/'+name+'_'+str(n)+'_'+bands+'_0.npy.yml'#r\"{base}/metrics/{name}_{n}_{bands}_0.npy.yml\"\n", + " try:\n", + " info = yaml.safe_load(open(fn))\n", + " except:\n", + " info = EverythingIsZero()\n", + " for metric in metrics:\n", + " row.append(info[metric])\n", + " data.append(row)\n", + " results = Table(rows=data, names=[\"method\", \"bands\", \"bins\"] + metrics, dtype=['U100', 'U4', 'i4'] + ['f8']*(len(metrics)))\n", + " return results\n", + "\n", + "dc2_mets = load_table('cosmodc2')\n", + "buzz_mets = load_table('buzzard')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "TODO: Next, replace this with my own cornerplot that doesn't try to smooth the distribution. Then, plot one line as function of nbins per method per dataset per bands. Then use color, shape, linestyle to distinguish bands, dataset, nbins." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n", + "WARNING:root:Too few points to create valid contours\n" + ] + }, + { + "data": { + "image/png": "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pbYY4a7oNM4B+wIhgDHGBbDW3mGMeRVwGfAxY8xqa+2irZ3MWnsBcAHAUUcdtencapEdovwS2T5e2wIWn+MO/nwDsPjm8wfvW/jtJTs9hrm5ZuZe+IlR7xMRERERERGRzW218GytjY0xZwCvB44HOoE/W2sfGGH3acD3gCvGM8hNGWOMtXaFMeYK4N3GmDuttU+bGtda+29jzGuo1SjeDnxkZ8YjIiI7x6aF5bkXfoKVbz0PYFhBeme666yRi84iIiIiIiIiMjpnLDtZa2Nr7e+ste+11n5ulKIz1tpLrLUfttauGtcoN3+cgY7Ra4B5wJuMMS317XG9+Hw38L/A+4wxR+7MeERERERERERERERko7GM2phwxpgs8GZgDvAI8Ki19gFr7S+NMccAHwO6jDG/s9b21EZNA3AL0AfMB+6fgNBFRERERERERERE9jiTvvBsjMkB/6bWnR0AHwKeNMZcbq39srX2XGNME/ANoMEY83tr7fL64SWgdyLiFhEREREREREREdlTTerCs6m1Ln8d2AC8xVq71BjzTOBtwKeMMfOstedaa19rjPkl8G7gecaY7wMRcBaQBv4zQZcgIiIiIiIiIiIisseZ1IVna601xiwEVlhrl9a33WeMWQUsAc6rLzT4Dmvt240x7wVeBPwDeBooA2dYa1dO0CWIiIiIiIiIiIiI7HEmbeHZGOMChtqM5pQxxgEca21orV1X73C2wNeNMWvqix7+yBjzE2A/amM2Ctbazgm7CBEREREREREREZE9kDPRAWzKGOMBWGsja20IXAu8AnietTYccn8v8Dvgx8CrjDHH109hrbWPW2uXq+gsIiIiIiIiIiIisutNqsJzfSHBxcaYTw7Z/Bvgb8Dlxpj9Nyk+rwd+DUwHDq1vs7s4bBEREREREREREREZYrKN2ngpsBfwVWOMZ639cr3QfD4wE7jaGPMia+1iY4xvra1aax80xjwKHAf8bAJjFxERGbO5uWbmXviJUe8TERERERERmcomW+H5UeBhaosDftYY41hrv2itvcMY8xXgs8DtxpiXW2tvBzDGtAE+sGzCohYREdlGd501ctFZREREREREZHcwGQvPLtAJfBX4vDGGevH5KmNML/AB4BZjzK+APLUxGwcA50xQzCIiIiIiIiIiIiIyxKQpPBtjXGttxRhzFxBZa79ojPGpFZ8ja+1XgGcAXwSup7bgYBu1TucTrbWPT1jwIiIiIiIiIiIiIjJo0hSerbVR/ds7gfcbY34E/ASoAl8yxryJWjf0rdbanxljLgbKQMJaW56QoEVERERERERERERkM85EBzCCh4AE0GStXQX8AFgE7APcYa1dVN8vsNbGKjqLiIiIiIiIiIiITC6TrvBsrb0HKAFn1jf9BJgNXAK8zhjz1fp+4cREKCIiIiIiIiIiIiJbMmlGbQAYYxxrbQw8AOxnjLkQOBV4JfAYsAZ4jzHmO9bajomLVERERERERERERERGM6kKz/WiM8AVwJ+BbuB1wM3WWmuM+SbwTRWdRURERERERERERCavSVV4HuJq4B3AEuAWa60FsNZumNCoREQmsfzyB1h8jrvZ9rXJRj72/I9z11mfmICoRERERERERGRPNCkLz9baijHmIiAeKDqLiMiWeXHE/heN8JJ5jsvKfM8uj0dERERERERE9lyTsvAMYK2NJvLxo2j0h3fdzTsKRbZFFI+cX66j3BIRERERERERkanPmegARERERERERERERGT3osKziIiIiIiIiIiIiIwrFZ5FREREREREREREZFyp8CwiIiIiIiIiIiIi40qFZxEREREREREREREZVyo8jyCKQmwcTnQYspuK4hAbKb9ERERERERERGT3Zay1Ex3DpOM4ptsYsyyO7URWB6cBHRP4+Iph+2NYYK1tH+3OCcqvifo9TsTj7u7XOmp+GWM2AMt2QQxD7e6/74l+zF35uFt87RIRERERERHZFio8T1LGmHuttUcpBsUwHibqGibicfeka50M9qTf9550rSIiIiIiIiI7SqM2RERERERERERERGRcqfAsIiIiIiIiIiIiIuNKhefJ64KJDgDFMGAyxLCjJuoaJuJx96RrnQz2pN/3nnStIiIiIiIiIjtEM55FREREREREREREZFyp41lERERERERERERExpUKzyIiIiIiIiIiIiIyrryJDmAymjZtmt1rr70mOgyZZCIbYwGD4ZHO1aPuV12xvsdGUcto9yu/9gyW2hij2FoqUYjvuHhO7b2+QjXAbLJ/ZC0Wy7K+ri2et7psbYe1tn2k+5Rbe4aB3AIohVVc45BwXWDk3IqxxFa5JRPnP//5z6i5JSIiIiIiuy8Vnkew1157ce+99050GDLJdJcLxFh8x+Pg331h1P1Wv/97HVs6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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# need to replace this with my own scatter/corner plot\n", + "# can nominally plot line over nbins for each method --> have linestyle, shape, color to work with for nbins, bands, dataset\n", + "\n", + "metcols = ['SNR_ww','SNR_gg','SNR_3x2','FOM_ww','FOM_gg','FOM_3x2','FOM_DETF_ww','FOM_DETF_gg','FOM_DETF_3x2']\n", + "# shapes = {'cosmodc2': 'o', 'buzzard': 'v'}\n", + "# bands = {'riz': 'v', 'griz': 's'}\n", + "cmap = matplotlib.cm.Dark2\n", + "# labels = ['err_u', 'err_g', 'err_r', 'err_i', 'err_z', 'err_y']\n", + "\n", + "def plot_corner(which_data, dimname):\n", + " data = load_table(which_data)\n", + " dimopts = np.unique(data[dimname])\n", + " subsets = data.group_by(dimname)\n", + " for i, val in enumerate(dimopts):\n", + " plotdata = subsets.groups[i][metcols].to_pandas().dropna()\n", + " if i == 0:\n", + " fig = corner.corner(plotdata, \n", + " labels=metcols, alpha=0.5, color=cmap.colors[i])\n", + " else:\n", + " corner.corner(plotdata, fig=fig, color=cmap.colors[i], alpha=0.5)\n", + " \n", + "plot_corner('buzzard', 'bands')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# rank evolution with test conditions\n", + "\n", + "(like Figs. 5 and 6 from [the PLAsTiCC metrics paper](https://iopscience.iop.org/article/10.3847/1538-3881/ab3a2f))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# # from https://github.com/aimalz/proclam/blob/master/Plot_Table3.ipynb\n", + "\n", + "# metric_dictionary = {'TBDT':{'FoM': 1, 'LogLoss': 1, 'Brier': 1},\n", + "# 'TKNN':{'FoM': 7, 'LogLoss': 6, 'Brier': 7},\n", + "# 'TNB':{'FoM': 8, 'LogLoss': 9, 'Brier': 8},\n", + "# 'TNN':{'FoM': 5, 'LogLoss': 3, 'Brier': 3},\n", + "# 'TSVM':{'FoM': 3, 'LogLoss': 2, 'Brier': 2},\n", + "# 'WBDT':{'FoM': 2, 'LogLoss': 5, 'Brier': 4},\n", + "# 'WKNN':{'FoM': 9, 'LogLoss': 8, 'Brier': 9},\n", + "# 'WNB':{'FoM': 10, 'LogLoss': 10, 'Brier': 10},\n", + "# 'WNN':{'FoM': 6, 'LogLoss': 7, 'Brier': 6},\n", + "# 'WSVM':{'FoM': 4, 'LogLoss': 4, 'Brier': 5},\n", + "# }\n", + "\n", + "# def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100):\n", + "# new_cmap = mpl.colors.LinearSegmentedColormap.from_list(\n", + "# 'trunc({n},{a:.2f},{b:.2f})'.format(n=cmap.name, a=minval, b=maxval),\n", + "# cmap(np.linspace(minval, maxval, n)))\n", + "# return new_cmap\n", + "\n", + "# cmap = plt.get_cmap('hot_r')\n", + "# fave_cmap = truncate_colormap(cmap, 0.35, 1.0)\n", + "\n", + "# colors = {'TBDT':fave_cmap(0.05),\n", + "# 'TKNN':fave_cmap(0.2375),\n", + "# 'TNB':fave_cmap(0.54),\n", + "# 'TNN':fave_cmap(0.712499999),\n", + "# 'TSVM':fave_cmap(1.0),\n", + "# 'WBDT':fave_cmap(0.05),\n", + "# 'WKNN':fave_cmap(0.2375),\n", + "# 'WNB':fave_cmap(0.54),\n", + "# 'WNN':fave_cmap(0.712499999),\n", + "# 'WSVM':fave_cmap(1.0),\n", + "# }\n", + "\n", + "# plt.figure()\n", + "# for key, value in metric_dictionary.items():\n", + "# val = []\n", + "# for k, v in value.items():\n", + "# val.append(v)\n", + "# if 'W' in key:\n", + "# plt.plot(val, label=key, marker=symbols[key], ls='--', color=colors[key], lw=2, ms=7, alpha=0.3)\n", + "# else:\n", + "# plt.plot(val, label=key, marker=symbols[key], color=colors[key], lw=2, ms=7)\n", + "\n", + "# plt.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop={'size': 12})\n", + "# plt.xticks([0, 1, 2], ['FoM', 'LogLoss', 'Brier'])\n", + "# plt.yticks(np.arange(1, 11))\n", + "# plt.ylabel('Rank')\n", + "# plt.gca().invert_yaxis()\n", + "\n", + "# #plt.savefig('Tables3_option4.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# import random\n", + "# from mpl_toolkits.axes_grid1 import ImageGrid\n", + "\n", + "# howmanytoshow = 2 * M_classes\n", + "# truth_here = list(range(M_classes))+list(range(M_classes))#np.random.choice(M_classes, howmanytoshow)\n", + "# random.shuffle(truth_here)\n", + "# truth_here = np.array(truth_here)\n", + "\n", + "# classifier = FromCMDM()\n", + "# res = classifier.classify(cm, truth_here, delta=0.01, other=False)\n", + "\n", + "# tickinfo = [systematic_types[i] for i in truth_here]\n", + "# tickinfo = list(reversed(tickinfo))\n", + "\n", + "# fig = plt.figure(figsize=(5,10))\n", + "# axs = ImageGrid(fig, 111, nrows_ncols=(1,1))\n", + "# ax = axs[0]\n", + "# # _ = ax.imshow(d)\n", + "# ax.set_title('classification probabilities')\n", + "# ax.set_xlabel('possible classes')\n", + "# ax.set_xticks(range(M_classes))\n", + "# ax.set_xticklabels(range(1, M_classes+1))\n", + "\n", + "# ax.imshow(res, vmin=0., vmax=1., cmap=fave_cmap)\n", + "# ax.set_yticks(range(howmanytoshow))\n", + "# ax.set_yticklabels(truth_here+1)\n", + "# ax.set_ylabel('true class')\n", + "# ax.tick_params(axis=u'both', which=u'both',length=0)\n", + "# for x, y in zip(truth_here, range(howmanytoshow)):\n", + "# ax.scatter(x, y, marker='*', color=\"darkorchid\", s=100)#, fontsize=15)\n", + "\n", + "# ax2 = ax.twinx()\n", + "# ax2.set_yticks(range(howmanytoshow))\n", + "# ax2.set_yticklabels(tickinfo)\n", + "# ax2.set_ylabel('systematic effect', rotation=270, labelpad=20)\n", + "# ax2.set_ylim(-0.5, howmanytoshow-0.5)\n", + "# ax2.tick_params(axis=u'both', which=u'both',length=0)\n", + "\n", + "# plt.savefig('fig/examples.png', dpi=250)\n", + "# plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "y axis = methods, x axis = metric\n", + "\n", + "try to make separate panels controlling for bands/bins (y-wise), dataset (x-wise)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dc2_mets = load_table('cosmodc2')\n", + "buzz_mets = load_table('buzzard')\n", + "xpan = {'dc2': dc2_mets, 'buzz': buzz_mets}\n", + "xpan_data = list(xpan.values())\n", + "xpan_labs = list(xpan.keys())\n", + "n_xpan = len(xpan_labs)\n", + "\n", + "ypans = ['bands', 'bins']\n", + "xax_in = ['SNR_ww','SNR_gg','SNR_3x2','FOM_ww','FOM_gg','FOM_3x2','FOM_DETF_ww','FOM_DETF_gg','FOM_DETF_3x2']\n", + "yax = 'method'\n", + "\n", + "for xpan_name, xpan_datum in xpan.items():\n", + " xax_out = {}\n", + " ypan_labs = {}\n", + " for k, ypan_col in enumerate(ypans):\n", + " xax_out[ypans[k-1]] = []\n", + " for j, xax_col in enumerate(xax_in):\n", + " ypan_labs[ypans[k]] = []\n", + " newcol = 'rank_'+xax_col+'_by_'+ypan_col\n", + " xax_out[ypans[k-1]].append(newcol)\n", + " xpan_datum[newcol] = -1\n", + " for l, ypan_val in enumerate(np.unique(xpan_datum[ypan_col])):\n", + "# newcol = 'rank_'+xax_col+'_by_'+ypan_col+'='+str(ypan_val)\n", + "# xax_out[ypans[k-1]].append(newcol)\n", + "# xpan_datum[newcol] = -1\n", + " ypan_labs[ypans[k]].append(ypan_val)\n", + " subset_mask = xpan_datum[ypan_col] == ypan_val\n", + " subset = sps.rankdata(xpan_datum[subset_mask][xax_col], method='min')\n", + " xpan_datum[newcol][subset_mask] = subset\n", + " xpan[xpan_name] = xpan_datum" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for iyp, ypan in enumerate(ypans):\n", + " n_ypan = len(ypan_labs[ypan])\n", + " xax = xax_out[ypan]\n", + " n_xax = len(xax) * len(ypan_labs[ypans[iyp-1]])\n", + " xax_inds = range(n_xax)\n", + " fig, axs = plt.subplots(n_ypan, n_xpan, figsize=(10*n_xpan, 10*n_ypan))\n", + " fig.suptitle(ypan, fontsize=20)\n", + " for ix, xpan_datum in enumerate(xpan_data):\n", + " yax_labs = np.unique(xpan_datum[yax])\n", + " n_yax = len(yax_labs)\n", + " yax_inds = range(n_yax)\n", + " imshape = (n_xax, n_yax)\n", + " to_plot = np.empty(imshape)\n", + " for iy, ypan_val in enumerate(ypan_labs[ypan]):\n", + " panmask = xpan_datum[ypan] == ypan_val\n", + " per_pan_data = xpan_datum[panmask]\n", + " whichcol = 0\n", + " xticks = []\n", + " for six, sub_ind in enumerate(ypan_labs[ypans[iyp-1]]):\n", + " for c, xax_col in enumerate(xax):\n", + " immask = per_pan_data[ypans[iyp-1]] == sub_ind\n", + " to_plot[whichcol] = sps.rankdata(np.array(per_pan_data[immask][xax_col]), method='min')\n", + " whichcol += 1\n", + " xticks.append(xax_col+str(sub_ind))\n", + " axs[iy][ix].set_title(xpan_labs[ix]+': '+str(ypan_val), fontsize=18)\n", + " axs[iy][ix].set_xlabel('metric', fontsize=16)\n", + " axs[iy][ix].set_ylabel(yax, fontsize=16)\n", + "# yax_labs = to_plot[yax]\n", + "# ypan_data = np.array([to_plot[xax_val] for xax_val in xax])\n", + " ranks = axs[iy][ix].imshow(to_plot.T, cmap=plt.cm.inferno)\n", + " axs[iy][ix].set_yticks(yax_inds)\n", + " axs[iy][ix].set_yticklabels(yax_labs, fontsize=10)\n", + " axs[iy][ix].set_xticks(range(len(xticks)))\n", + " axs[iy][ix].set_xticklabels(xticks, fontsize=10, rotation=90)\n", + " \n", + "# fig.colorbar(ranks, ax=axs[iy][ix])\n", + " fig.tight_layout()\n", + " fig.subplots_adjust(hspace=0.0)\n", + " fig.show()\n", + " plt.savefig('ranks_by_'+ypan+'_draft.png')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# meta-metric\n", + "\n", + "(like Figs. 5 and 8 from [the old qp paper](https://iopscience.iop.org/article/10.3847/1538-3881/aac6b5))\n", + "\n", + "sensitivity of metrics to the different dimensions of (DC2 vs. Buzzard) X (3 vs. 5 vs. 7 vs. 9 bins) X (algorithm)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# # from https://github.com/aimalz/qp/blob/master/docs/desc-0000-qp-photo-z_approximation/research/analysis.ipynb\n", + "\n", + "# def plot_pz_delta_moments(name, size):\n", + "# n_gals_use = size\n", + "# extremum = np.zeros(n_moments_use)\n", + " \n", + "# path = os.path.join(name, str(size))\n", + "# loc = os.path.join(path, 'pz_moment_deltas'+str(size)+name)\n", + "# with open(loc+'.hkl', 'r') as pz_file:\n", + "# pz_stats = hickle.load(pz_file)\n", + "# flat_floats = np.array(pz_stats['N_f']).flatten()\n", + "# in_x = np.log(flat_floats)\n", + "# a = 1./len(formats)\n", + "# shapes = moment_shapes\n", + "# marksize = 10\n", + " \n", + "# def make_patch_spines_invisible(ax):\n", + "# ax.set_frame_on(True)\n", + "# ax.patch.set_visible(False)\n", + "# for sp in ax.spines.values():\n", + "# sp.set_visible(False) \n", + " \n", + "# fig, ax = plt.subplots()\n", + "# fig.subplots_adjust(right=1.)\n", + "# ax_n = ax\n", + "# for key in formats:\n", + "# ax.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=0.5, linewidth=2)\n", + "# for n in range(1, n_moments_use):\n", + "# ax.scatter([-10], [0], color='k', alpha=0.5, marker=shapes[n], s=50, label=moment_names[n])\n", + "# n_factor = 0.1 * (n - 2)\n", + "# if n>1:\n", + "# ax_n = ax.twinx()\n", + "# rot_ang = 270\n", + "# label_space = 15.\n", + "# else:\n", + "# rot_ang = 90\n", + "# label_space = 0.\n", + "# if n>2:\n", + "# ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + "# make_patch_spines_invisible(ax_n)\n", + "# ax_n.spines[\"right\"].set_visible(True)\n", + "# for s in range(len(formats)):\n", + "# f = formats[s]\n", + "# f_factor = 0.05 * (s - 1)\n", + "# old_shape = np.shape(np.array(pz_stats[f][n]))\n", + "# new_shape = (old_shape[0], np.prod(old_shape[1:]))\n", + "# data_arr = np.abs(np.array(pz_stats[f][n]).reshape(new_shape)) * 100.#go from n_floats*instantiations*n_gals n_floats*(n_gals*n_instantiations)\n", + "# std = np.log10(np.percentile(data_arr, [25, 50, 75], axis=-1))\n", + "# y_plus = std[-1]#mean + std\n", + "# y_minus = std[0]#mean - std\n", + "# mean = std[1]\n", + "# ax_n.plot(np.exp(in_x+n_factor), mean, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, alpha=a, color=colors[f])\n", + "# ax_n.vlines(np.exp(in_x+n_factor), y_minus, y_plus, linewidth=3., alpha=a, color=colors[f])\n", + "# n_delta_max[n] = max(n_delta_max[n], np.max(y_plus))\n", + "# n_delta_min[n] = min(n_delta_min[n], np.min(y_minus))\n", + "# ax_n.set_ylabel(r'$\\log_{10}$-percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + "# extremum[n] = np.max(np.abs(np.array([n_delta_min[n], n_delta_max[n]]))) + 0.25\n", + "# ax_n.set_ylim(-1.*extremum[n], extremum[n])\n", + "# ax.set_xscale('log')\n", + "# ax.set_xticks(flat_floats)\n", + "# ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", + "# ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + "# ax.set_xlabel('number of parameters', fontsize=14)\n", + "# ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment log-percent errors', fontsize=16)\n", + "# ax.legend(loc=dataset_info[name]['legloc_p'])\n", + "# fig.tight_layout()\n", + "# fig.savefig(loc+'_clean.pdf', dpi=250)\n", + "# plt.close()\n", + " \n", + "# fig, ax = plt.subplots()\n", + "# fig.subplots_adjust(right=1.)\n", + "# ax_n = ax\n", + "# for key in formats:\n", + "# ax_n.plot([-10], [0], color=colors[key], label=key, linestyle=styles[key], alpha=0.5, linewidth=2)\n", + "# for n in range(1, n_moments_use):\n", + "# n_factor = 0.1 * (n - 2)\n", + "# ax.scatter([-10], [0], color='k', alpha=a, marker=shapes[n], s=50, label=moment_names[n])\n", + "# if n>1:\n", + "# ax_n = ax.twinx()\n", + "# rot_ang = 270\n", + "# label_space = 15.\n", + "# else:\n", + "# rot_ang = 90\n", + "# label_space = 0.\n", + "# if n>2:\n", + "# ax_n.spines[\"right\"].set_position((\"axes\", 1. + 0.1 * (n-1)))\n", + "# make_patch_spines_invisible(ax_n)\n", + "# ax_n.spines[\"right\"].set_visible(True)\n", + "# for s in range(len(formats)):\n", + "# f = formats[s]\n", + "# f_factor = 0.05 * (s - 1)\n", + "# data_arr = np.swapaxes(np.array(pz_stats[f][n]), 0, 1)\n", + "# data_arr = np.median(data_arr, axis=2) * 100.\n", + "# for i in data_arr:\n", + "# ax_n.plot(np.exp(in_x+n_factor), i, linestyle=styles[f], marker=shapes[n], mfc='none', markersize=marksize, color=colors[f], alpha=a)\n", + "# ax_n.set_ylabel(r'median percent error on '+moment_names[n], rotation=rot_ang, fontsize=14, labelpad=label_space)\n", + "# ax_n.set_ylim(-10., 10.)#(-1.*extremum[n], extremum[n])\n", + "# ax.set_xscale('log')\n", + "# ax.set_xticks(flat_floats)\n", + "# ax.get_xaxis().set_major_formatter(mpl.ticker.ScalarFormatter())\n", + "# ax.set_xlim(np.exp(min(in_x)-0.25), np.exp(max(in_x)+0.25))\n", + "# ax.set_xlabel('number of parameters', fontsize=14)\n", + "# ax.set_title(dataset_info[name]['name']+r' data $\\hat{p}(z)$ moment percent errors', fontsize=16)\n", + "# ax.legend(loc='upper left')\n", + "# fig.tight_layout()\n", + "# fig.savefig(loc+'_all.pdf', dpi=250)\n", + "# plt.close()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "JAZ-GPU", + "language": "python", + "name": "jaz-gpu" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_3_griz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_3_griz_0.npy.yml new file mode 100644 index 00000000..ab1e6e1e --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 797.7002859806742 +FOM_DETF_3x2: 26.312905246787956 +FOM_DETF_gg: 2.2669511305619996 +FOM_DETF_ww: 0.31803406095456244 +FOM_gg: 193.96116280086005 +FOM_ww: 5.728584989619355 +SNR_3x2: 1134.108692348937 +SNR_gg: 1132.236271438865 +SNR_ww: 251.70352955609016 +counts: + 0: 1166335 + 1: 2328074 + 2: 1596623 + 3: 312741 +name: Autokeras_LSTM_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_3_riz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_3_riz_0.npy.yml new file mode 100644 index 00000000..b0d50261 --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 908.9745789687476 +FOM_DETF_3x2: 22.3154726559591 +FOM_DETF_gg: 2.1872214247214714 +FOM_DETF_ww: 0.15255029195002434 +FOM_gg: 200.93511852053808 +FOM_ww: 2.9409362078022854 +SNR_3x2: 1089.8188440530687 +SNR_gg: 1087.639937850186 +SNR_ww: 244.30785740040247 +counts: + 0: 2258490 + 1: 476308 + 2: 2618392 + 3: 50583 +name: Autokeras_LSTM_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_5_griz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_5_griz_0.npy.yml new file mode 100644 index 00000000..1644e7a6 --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2494.5605078854182 +FOM_DETF_3x2: 43.39154729280305 +FOM_DETF_gg: 6.122876966842188 +FOM_DETF_ww: 0.21964435935576754 +FOM_gg: 634.1249243675406 +FOM_ww: 4.952244470500496 +SNR_3x2: 1327.7526519854039 +SNR_gg: 1325.8374933396758 +SNR_ww: 243.40786010136713 +counts: + 0: 108321 + 1: 989870 + 2: 1826562 + 3: 2006613 + 4: 159666 + 5: 312741 +name: Autokeras_LSTM_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_5_riz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_5_riz_0.npy.yml new file mode 100644 index 00000000..c26ec75c --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 1577.2214981189095 +FOM_DETF_3x2: 32.73052431534064 +FOM_DETF_gg: 4.489379501281917 +FOM_DETF_ww: 0.43387825476143504 +FOM_gg: 418.09252972795787 +FOM_ww: 10.504006308139733 +SNR_3x2: 1130.2945332766978 +SNR_gg: 1127.7223372106553 +SNR_ww: 249.98681911040327 +counts: + 0: 2794787 + 1: 2 + 2: 23325 + 3: 1723238 + 4: 811838 + 5: 50583 +name: Autokeras_LSTM_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_7_griz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_7_griz_0.npy.yml new file mode 100644 index 00000000..c1b96ff5 --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_7_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 6185 + 3: 28502 + 4: 5055366 + 5: 132 + 6: 847 + 7: 312741 +name: Autokeras_LSTM_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_7_riz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_7_riz_0.npy.yml new file mode 100644 index 00000000..81048292 --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 3930.0336230414628 +FOM_DETF_3x2: 61.834349918035265 +FOM_DETF_gg: 10.125815430637175 +FOM_DETF_ww: 0.34501414850736595 +FOM_gg: 1059.0020344600805 +FOM_ww: 8.2296407808275 +SNR_3x2: 1355.6583532732243 +SNR_gg: 1353.88247909081 +SNR_ww: 246.4314312987483 +counts: + 0: 104069 + 1: 18541 + 2: 1458144 + 3: 1715687 + 4: 53201 + 5: 1641495 + 6: 362053 + 7: 50583 +name: Autokeras_LSTM_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_9_griz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_9_griz_0.npy.yml new file mode 100644 index 00000000..2c870d24 --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 5123.502429697735 +FOM_DETF_3x2: 72.18026167141376 +FOM_DETF_gg: 14.443555535090116 +FOM_DETF_ww: 0.45157942373711907 +FOM_gg: 1499.5883138160696 +FOM_ww: 11.486928106047458 +SNR_3x2: 1845.0137625542613 +SNR_gg: 1844.559078830644 +SNR_ww: 255.4003003813294 +counts: + 0: 991398 + 1: 225965 + 2: 611919 + 3: 957666 + 4: 61798 + 5: 370214 + 6: 376243 + 7: 1267770 + 8: 228059 + 9: 312741 +name: Autokeras_LSTM_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/Autokeras_LSTM_9_riz_0.npy.yml b/paper/results/buzzard/metrics/Autokeras_LSTM_9_riz_0.npy.yml new file mode 100644 index 00000000..d5885d9e --- /dev/null +++ b/paper/results/buzzard/metrics/Autokeras_LSTM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 314678 + 1: 749738 + 2: 83486 + 3: 5626 + 4: 5119 + 6: 1066372 + 7: 1201401 + 8: 1926770 + 9: 50583 +name: Autokeras_LSTM_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_3_griz_0.npy.yml b/paper/results/buzzard/metrics/CNN_3_griz_0.npy.yml new file mode 100644 index 00000000..9e4f59ad --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 406.8211676531735 +FOM_DETF_3x2: 17.714870336465797 +FOM_DETF_gg: 0.7901996252317148 +FOM_DETF_ww: 0.0917508157750468 +FOM_gg: 65.18343849950013 +FOM_ww: 1.7717360458261444 +SNR_3x2: 947.7958347416238 +SNR_gg: 944.8907733887493 +SNR_ww: 247.84112306706035 +counts: + 0: 2543774 + 1: 2547258 + 2: 312741 +name: CNN_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_3_riz_0.npy.yml b/paper/results/buzzard/metrics/CNN_3_riz_0.npy.yml new file mode 100644 index 00000000..89d72c81 --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 378.2881538974554 +FOM_DETF_3x2: 18.01265861759985 +FOM_DETF_gg: 0.9485729525542994 +FOM_DETF_ww: 0.07847093644387808 +FOM_gg: 73.1942615205353 +FOM_ww: 1.7939200761865834 +SNR_3x2: 951.0680523570375 +SNR_gg: 948.0729330981394 +SNR_ww: 244.26877079790887 +counts: + 0: 2794760 + 1: 2558430 + 2: 50583 +name: CNN_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_5_griz_0.npy.yml b/paper/results/buzzard/metrics/CNN_5_griz_0.npy.yml new file mode 100644 index 00000000..f211dfd3 --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1451.5661147299097 +FOM_DETF_3x2: 40.650543055401286 +FOM_DETF_gg: 4.6706217521109314 +FOM_DETF_ww: 0.4423280031554483 +FOM_gg: 421.0433258644185 +FOM_ww: 9.39034041262884 +SNR_3x2: 1306.6937659806133 +SNR_gg: 1306.0181387506427 +SNR_ww: 255.52326605115238 +counts: + 0: 1173948 + 1: 1328231 + 2: 1308793 + 3: 1280060 + 4: 312741 +name: CNN_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_5_riz_0.npy.yml b/paper/results/buzzard/metrics/CNN_5_riz_0.npy.yml new file mode 100644 index 00000000..1c50d6bd --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1409.9025313543775 +FOM_DETF_3x2: 36.88186610434481 +FOM_DETF_gg: 4.741942563997439 +FOM_DETF_ww: 0.4131314314645633 +FOM_gg: 419.46210811862653 +FOM_ww: 9.526665624074422 +SNR_3x2: 1278.961483929737 +SNR_gg: 1277.2539666715804 +SNR_ww: 250.12458919856635 +counts: + 0: 1360525 + 1: 1438486 + 2: 1406314 + 3: 1147865 + 4: 50583 +name: CNN_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_7_griz_0.npy.yml b/paper/results/buzzard/metrics/CNN_7_griz_0.npy.yml new file mode 100644 index 00000000..6d520c07 --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3132.1910617315775 +FOM_DETF_3x2: 62.64783941341034 +FOM_DETF_gg: 9.887713091424569 +FOM_DETF_ww: 0.5516885056363562 +FOM_gg: 941.9433666999738 +FOM_ww: 14.680493711234185 +SNR_3x2: 1580.5995398055666 +SNR_gg: 1580.2322983947215 +SNR_ww: 258.333745622005 +counts: + 0: 760808 + 1: 947919 + 2: 842545 + 3: 820969 + 4: 894374 + 5: 824417 + 6: 312741 +name: CNN_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_7_riz_0.npy.yml b/paper/results/buzzard/metrics/CNN_7_riz_0.npy.yml new file mode 100644 index 00000000..db694b3c --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3203.136244497833 +FOM_DETF_3x2: 59.79402194998627 +FOM_DETF_gg: 9.795075046408416 +FOM_DETF_ww: 0.47807622956238155 +FOM_gg: 950.1585192371314 +FOM_ww: 12.275181292585795 +SNR_3x2: 1543.5482252625245 +SNR_gg: 1543.0120714911777 +SNR_ww: 251.78823008337238 +counts: + 0: 699299 + 1: 1070800 + 2: 1004959 + 3: 856838 + 4: 871833 + 5: 849461 + 6: 50583 +name: CNN_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_9_griz_0.npy.yml b/paper/results/buzzard/metrics/CNN_9_griz_0.npy.yml new file mode 100644 index 00000000..6c832737 --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4641.25550288397 +FOM_DETF_3x2: 74.45239004225316 +FOM_DETF_gg: 13.715514114594402 +FOM_DETF_ww: 0.5773557729457961 +FOM_gg: 1364.869174842994 +FOM_ww: 16.239831735296107 +SNR_3x2: 1814.5809383933097 +SNR_gg: 1814.2532210343456 +SNR_ww: 258.9808353019984 +counts: + 0: 668939 + 1: 768384 + 2: 536100 + 3: 610342 + 4: 583823 + 5: 578251 + 6: 660676 + 7: 684517 + 8: 312741 +name: CNN_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/CNN_9_riz_0.npy.yml b/paper/results/buzzard/metrics/CNN_9_riz_0.npy.yml new file mode 100644 index 00000000..af8c9f4e --- /dev/null +++ b/paper/results/buzzard/metrics/CNN_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4789.344553312701 +FOM_DETF_3x2: 70.27705669970872 +FOM_DETF_gg: 13.075652077792139 +FOM_DETF_ww: 0.494495451468719 +FOM_gg: 1335.4498620765723 +FOM_ww: 13.21817983024775 +SNR_3x2: 1724.9919160831423 +SNR_gg: 1724.5208479314583 +SNR_ww: 252.24896556915198 +counts: + 0: 592591 + 1: 681723 + 2: 716925 + 3: 705804 + 4: 622157 + 5: 745815 + 6: 634579 + 7: 653596 + 8: 50583 +name: CNN_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_3_griz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_3_griz_0.npy.yml new file mode 100644 index 00000000..2a8d9bf3 --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 264.6386381709238 +FOM_DETF_3x2: 25.016556474548842 +FOM_DETF_gg: 2.327475957810282 +FOM_DETF_ww: 0.06963189924082279 +FOM_gg: 123.89588987598292 +FOM_ww: 0.99892463870704 +SNR_3x2: 1142.4918681126337 +SNR_gg: 1141.5279334076924 +SNR_ww: 237.46327259982718 +counts: + 0: 414642 + 1: 1198474 + 2: 3790657 +name: ComplexSOM_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_3_riz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_3_riz_0.npy.yml new file mode 100644 index 00000000..fa562800 --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 494.5139949319462 +FOM_DETF_3x2: 30.39026029046811 +FOM_DETF_gg: 3.1693582106185376 +FOM_DETF_ww: 0.1018474493265902 +FOM_gg: 215.88376479304608 +FOM_ww: 1.856029878474816 +SNR_3x2: 1133.8162250166133 +SNR_gg: 1132.9793502175855 +SNR_ww: 239.98158407401561 +counts: + 0: 555288 + 1: 1953044 + 2: 2895441 +name: ComplexSOM_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_5_griz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_5_griz_0.npy.yml new file mode 100644 index 00000000..54e9c9ef --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1910.2923918855397 +FOM_DETF_3x2: 48.52610032876963 +FOM_DETF_gg: 6.389673575964646 +FOM_DETF_ww: 0.37273228682192355 +FOM_gg: 584.4333118970709 +FOM_ww: 7.940580704389529 +SNR_3x2: 1457.109784847907 +SNR_gg: 1456.6172317299342 +SNR_ww: 251.80968881419716 +counts: + 0: 466602 + 1: 1029216 + 2: 1171405 + 3: 903844 + 4: 1832706 +name: ComplexSOM_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_5_riz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_5_riz_0.npy.yml new file mode 100644 index 00000000..5748c602 --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1963.1617410492086 +FOM_DETF_3x2: 47.80250192749589 +FOM_DETF_gg: 6.94185795523324 +FOM_DETF_ww: 0.3075527356161961 +FOM_gg: 632.9405356682777 +FOM_ww: 6.180932543267096 +SNR_3x2: 1397.585532218954 +SNR_gg: 1396.980995292349 +SNR_ww: 242.04643598561242 +counts: + 0: 605805 + 1: 1006257 + 2: 896270 + 3: 1698564 + 4: 1196877 +name: ComplexSOM_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_7_griz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_7_griz_0.npy.yml new file mode 100644 index 00000000..bfb36c77 --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3838.304738489297 +FOM_DETF_3x2: 63.40914313707311 +FOM_DETF_gg: 10.759362734753138 +FOM_DETF_ww: 0.5011713624512234 +FOM_gg: 1066.6248116177203 +FOM_ww: 13.191304687361106 +SNR_3x2: 1673.4033748467089 +SNR_gg: 1672.9573355570349 +SNR_ww: 255.11391907008021 +counts: + 0: 466602 + 1: 1029216 + 2: 993921 + 3: 531722 + 4: 549606 + 5: 738549 + 6: 1094157 +name: ComplexSOM_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_7_riz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_7_riz_0.npy.yml new file mode 100644 index 00000000..9833c039 --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3574.4315319051084 +FOM_DETF_3x2: 57.218098060744296 +FOM_DETF_gg: 10.13069939527809 +FOM_DETF_ww: 0.3270562359438328 +FOM_gg: 1017.6315976920886 +FOM_ww: 7.510732399489754 +SNR_3x2: 1537.6073887579532 +SNR_gg: 1537.0775178315973 +SNR_ww: 242.9798035613453 +counts: + 0: 455722 + 1: 879075 + 2: 783954 + 3: 760310 + 4: 800535 + 5: 844416 + 6: 879761 +name: ComplexSOM_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_9_griz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_9_griz_0.npy.yml new file mode 100644 index 00000000..9e84916d --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5177.907470065112 +FOM_DETF_3x2: 75.02957733859145 +FOM_DETF_gg: 14.322535043081023 +FOM_DETF_ww: 0.5564230631029787 +FOM_gg: 1462.727167720244 +FOM_ww: 15.878709541561042 +SNR_3x2: 1826.4295521765 +SNR_gg: 1826.0104766133468 +SNR_ww: 256.30494082797475 +counts: + 0: 466602 + 1: 579378 + 2: 791225 + 3: 652534 + 4: 318147 + 5: 763181 + 6: 593479 + 7: 495368 + 8: 743859 +name: ComplexSOM_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/ComplexSOM_9_riz_0.npy.yml b/paper/results/buzzard/metrics/ComplexSOM_9_riz_0.npy.yml new file mode 100644 index 00000000..fa338fca --- /dev/null +++ b/paper/results/buzzard/metrics/ComplexSOM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5371.9679846881645 +FOM_DETF_3x2: 74.90312720455057 +FOM_DETF_gg: 16.49622856336386 +FOM_DETF_ww: 0.3575134073183227 +FOM_gg: 1728.2292007842368 +FOM_ww: 8.387902518864816 +SNR_3x2: 1660.133095017701 +SNR_gg: 1659.6631951265604 +SNR_ww: 243.89358643635887 +counts: + 0: 139789 + 1: 466016 + 2: 1006257 + 3: 510815 + 4: 533844 + 5: 753073 + 6: 953348 + 7: 454427 + 8: 586204 +name: ComplexSOM_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_3_griz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_3_griz_0.npy.yml new file mode 100644 index 00000000..203d711d --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_3_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2153.5679014714397 +FOM_DETF_3x2: 52.157045634283925 +FOM_DETF_gg: 7.10545292217615 +FOM_DETF_ww: 0.5485709192831548 +FOM_gg: 650.7046581353276 +FOM_ww: 13.928708479682665 +SNR_3x2: 1451.2392299218893 +SNR_gg: 1450.7491647376626 +SNR_ww: 259.7642437019668 +counts: + 0: 1057611 + 1: 1122081 + 2: 1066900 + 3: 1061516 + 4: 1095665 +name: ENSEMBLE1_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_3_riz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_3_riz_0.npy.yml new file mode 100644 index 00000000..21a156d2 --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_3_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2277.488992549478 +FOM_DETF_3x2: 53.786282508938505 +FOM_DETF_gg: 7.891179369096587 +FOM_DETF_ww: 0.45849278465475585 +FOM_gg: 723.4494652784819 +FOM_ww: 11.376440886763199 +SNR_3x2: 1422.1621536152452 +SNR_gg: 1421.614030737623 +SNR_ww: 251.81642297083656 +counts: + 0: 728236 + 1: 1396034 + 2: 1135008 + 3: 1166866 + 4: 977629 +name: ENSEMBLE1_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_5_griz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_5_griz_0.npy.yml new file mode 100644 index 00000000..3be65a26 --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2153.5679014714397 +FOM_DETF_3x2: 52.157045634283925 +FOM_DETF_gg: 7.10545292217615 +FOM_DETF_ww: 0.5485709192831548 +FOM_gg: 650.7046581353276 +FOM_ww: 13.928708479682665 +SNR_3x2: 1451.2392299218893 +SNR_gg: 1450.7491647376626 +SNR_ww: 259.7642437019668 +counts: + 0: 1057611 + 1: 1122081 + 2: 1066900 + 3: 1061516 + 4: 1095665 +name: ENSEMBLE1_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_5_riz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_5_riz_0.npy.yml new file mode 100644 index 00000000..34148ca5 --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2277.4896567581904 +FOM_DETF_3x2: 53.786278302166515 +FOM_DETF_gg: 7.89117992870084 +FOM_DETF_ww: 0.4584927479281104 +FOM_gg: 723.449610323905 +FOM_ww: 11.376435880007497 +SNR_3x2: 1422.162112604806 +SNR_gg: 1421.6139897369362 +SNR_ww: 251.81641991431553 +counts: + 0: 728236 + 1: 1396034 + 2: 1135009 + 3: 1166865 + 4: 977629 +name: ENSEMBLE1_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_7_griz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_7_griz_0.npy.yml new file mode 100644 index 00000000..4444ab19 --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_7_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5443.535590492924 +FOM_DETF_3x2: 82.86064463021722 +FOM_DETF_gg: 15.880042957195661 +FOM_DETF_ww: 0.6135462042252454 +FOM_gg: 1609.7023705253698 +FOM_ww: 17.85341244003033 +SNR_3x2: 1901.5031546524228 +SNR_gg: 1901.1927887436284 +SNR_ww: 261.1021245024127 +counts: + 0: 627226 + 1: 524872 + 2: 338528 + 3: 553733 + 4: 798955 + 5: 599444 + 6: 745894 + 7: 667223 + 8: 547898 +name: ENSEMBLE1_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_7_riz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_7_riz_0.npy.yml new file mode 100644 index 00000000..ce055c0b --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_7_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5293.324602997368 +FOM_DETF_3x2: 74.60016216809207 +FOM_DETF_gg: 14.235078760114884 +FOM_DETF_ww: 0.5066159422647808 +FOM_gg: 1470.1938659121797 +FOM_ww: 13.749956615614236 +SNR_3x2: 1761.8927691067922 +SNR_gg: 1761.4255908147265 +SNR_ww: 253.08018533095122 +counts: + 0: 644551 + 1: 532130 + 2: 428735 + 3: 599371 + 4: 677760 + 5: 663607 + 6: 774435 + 7: 596506 + 8: 486678 +name: ENSEMBLE1_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_9_griz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_9_griz_0.npy.yml new file mode 100644 index 00000000..b2c1928f --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5443.535590492924 +FOM_DETF_3x2: 82.86064463021722 +FOM_DETF_gg: 15.880042957195661 +FOM_DETF_ww: 0.6135462042252454 +FOM_gg: 1609.7023705253698 +FOM_ww: 17.85341244003033 +SNR_3x2: 1901.5031546524228 +SNR_gg: 1901.1927887436284 +SNR_ww: 261.1021245024127 +counts: + 0: 627226 + 1: 524872 + 2: 338528 + 3: 553733 + 4: 798955 + 5: 599444 + 6: 745894 + 7: 667223 + 8: 547898 +name: ENSEMBLE1_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/ENSEMBLE1_9_riz_0.npy.yml b/paper/results/buzzard/metrics/ENSEMBLE1_9_riz_0.npy.yml new file mode 100644 index 00000000..42d293d0 --- /dev/null +++ b/paper/results/buzzard/metrics/ENSEMBLE1_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5293.324602997368 +FOM_DETF_3x2: 74.60016216809207 +FOM_DETF_gg: 14.235078760114884 +FOM_DETF_ww: 0.5066159422647808 +FOM_gg: 1470.1938659121797 +FOM_ww: 13.749956615614236 +SNR_3x2: 1761.8927691067922 +SNR_gg: 1761.4255908147265 +SNR_ww: 253.08018533095122 +counts: + 0: 644551 + 1: 532130 + 2: 428735 + 3: 599371 + 4: 677760 + 5: 663607 + 6: 774435 + 7: 596506 + 8: 486678 +name: ENSEMBLE1_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_3_griz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_3_griz_0.npy.yml new file mode 100644 index 00000000..092faafe --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 291.84262578090073 +FOM_DETF_3x2: 17.554406119519232 +FOM_DETF_gg: 0.4677677000913275 +FOM_DETF_ww: 0.10802262977487725 +FOM_gg: 33.679969163765485 +FOM_ww: 2.135108165500902 +SNR_3x2: 941.0907518652751 +SNR_gg: 938.4732737094552 +SNR_ww: 249.8814114560079 +counts: + -1: 0 + 0: 2849763 + 1: 2554010 +name: GPzBinning_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_3_riz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_3_riz_0.npy.yml new file mode 100644 index 00000000..43df9b24 --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 274.4842725654462 +FOM_DETF_3x2: 16.765410410981026 +FOM_DETF_gg: 0.51683026659673 +FOM_DETF_ww: 0.0815887582184489 +FOM_gg: 37.1440474870976 +FOM_ww: 1.6889855156799747 +SNR_3x2: 937.4535925093581 +SNR_gg: 935.2392909296155 +SNR_ww: 245.76343546601424 +counts: + -1: 0 + 0: 2735345 + 1: 2668428 +name: GPzBinning_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_5_griz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_5_griz_0.npy.yml new file mode 100644 index 00000000..71a70fc9 --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1390.9599966871722 +FOM_DETF_3x2: 39.738945657792534 +FOM_DETF_gg: 4.575794555473732 +FOM_DETF_ww: 0.47244482858393505 +FOM_gg: 405.8388037305995 +FOM_ww: 10.551061310550915 +SNR_3x2: 1301.5883145477533 +SNR_gg: 1300.8900887716018 +SNR_ww: 257.49564388662225 +counts: + -1: 0 + 0: 1270680 + 1: 1592328 + 2: 1185297 + 3: 1355468 +name: GPzBinning_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_5_riz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_5_riz_0.npy.yml new file mode 100644 index 00000000..ac31eeca --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1636.9674005052614 +FOM_DETF_3x2: 46.4364958235534 +FOM_DETF_gg: 5.850260364888509 +FOM_DETF_ww: 0.4104736073939832 +FOM_gg: 524.935472485227 +FOM_ww: 9.276015143681095 +SNR_3x2: 1244.7906811592036 +SNR_gg: 1244.1171960138659 +SNR_ww: 252.02187150858782 +counts: + -1: 0 + 0: 942314 + 1: 1763701 + 2: 1625228 + 3: 1072530 +name: GPzBinning_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_7_griz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_7_griz_0.npy.yml new file mode 100644 index 00000000..b794934a --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3435.7509188021995 +FOM_DETF_3x2: 67.0400148001069 +FOM_DETF_gg: 10.644375997335038 +FOM_DETF_ww: 0.5585145017306461 +FOM_gg: 1016.5121982019807 +FOM_ww: 14.96159929908789 +SNR_3x2: 1574.2769106262704 +SNR_gg: 1573.9234572254538 +SNR_ww: 259.6282055522611 +counts: + -1: 0 + 0: 628980 + 1: 1276260 + 2: 961021 + 3: 736824 + 4: 906400 + 5: 894288 +name: GPzBinning_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_7_riz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_7_riz_0.npy.yml new file mode 100644 index 00000000..e87c55b5 --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3497.0478650716695 +FOM_DETF_3x2: 61.35368280116035 +FOM_DETF_gg: 10.052896725920936 +FOM_DETF_ww: 0.45139727684326836 +FOM_gg: 997.6032396841007 +FOM_ww: 11.282856483913367 +SNR_3x2: 1456.0265641047438 +SNR_gg: 1455.4951982765883 +SNR_ww: 253.62576047882348 +counts: + -1: 0 + 0: 418081 + 1: 1456641 + 2: 840813 + 3: 811308 + 4: 1047578 + 5: 829352 +name: GPzBinning_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_9_griz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_9_griz_0.npy.yml new file mode 100644 index 00000000..f4778ed4 --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5261.647965661548 +FOM_DETF_3x2: 82.53688724430317 +FOM_DETF_gg: 15.284855260134378 +FOM_DETF_ww: 0.5909746392802476 +FOM_gg: 1524.0276686241668 +FOM_ww: 16.71643099807593 +SNR_3x2: 1789.1751810897783 +SNR_gg: 1788.8688804371782 +SNR_ww: 260.746570354379 +counts: + -1: 0 + 0: 446558 + 1: 830861 + 2: 891143 + 3: 683968 + 4: 527793 + 5: 651485 + 6: 652637 + 7: 719328 +name: GPzBinning_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/GPzBinning_9_riz_0.npy.yml b/paper/results/buzzard/metrics/GPzBinning_9_riz_0.npy.yml new file mode 100644 index 00000000..026fdfff --- /dev/null +++ b/paper/results/buzzard/metrics/GPzBinning_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4958.750227520559 +FOM_DETF_3x2: 70.65257965382357 +FOM_DETF_gg: 12.78730724363558 +FOM_DETF_ww: 0.4761987590259727 +FOM_gg: 1328.55129026482 +FOM_ww: 12.470433320754111 +SNR_3x2: 1562.1327810751482 +SNR_gg: 1561.6326712145867 +SNR_ww: 254.09499747468803 +counts: + -1: 0 + 0: 333936 + 1: 595904 + 2: 1357652 + 3: 431984 + 4: 464876 + 5: 1142338 + 6: 393961 + 7: 683122 +name: GPzBinning_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_3_griz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_3_griz_0.npy.yml new file mode 100644 index 00000000..161ce1a1 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 201.65808292006233 +FOM_DETF_3x2: 11.440539093213854 +FOM_DETF_gg: 0.7366238408247126 +FOM_DETF_ww: 0.010607109550321374 +FOM_gg: 68.19554057464974 +FOM_ww: 0.17679290944095677 +SNR_3x2: 722.5695229123587 +SNR_gg: 713.3743232147574 +SNR_ww: 221.90045899449143 +counts: + 0: 20433 + 1: 2658076 + 2: 2725264 +name: IBandOnly_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_3_riz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_3_riz_0.npy.yml new file mode 100644 index 00000000..8241959d --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 201.65808292006233 +FOM_DETF_3x2: 11.440539093213854 +FOM_DETF_gg: 0.7366238408247126 +FOM_DETF_ww: 0.010607109550321374 +FOM_gg: 68.19554057464974 +FOM_ww: 0.17679290944095677 +SNR_3x2: 722.5695229123587 +SNR_gg: 713.3743232147574 +SNR_ww: 221.90045899449143 +counts: + 0: 20433 + 1: 2658076 + 2: 2725264 +name: IBandOnly_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_5_griz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_5_griz_0.npy.yml new file mode 100644 index 00000000..9b96db79 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 435.41443699724346 +FOM_DETF_3x2: 15.921636194650702 +FOM_DETF_gg: 1.2684729737472304 +FOM_DETF_ww: 0.020581755467319617 +FOM_gg: 127.79848735330263 +FOM_ww: 0.292554049125474 +SNR_3x2: 737.9304442113408 +SNR_gg: 729.1740789085793 +SNR_ww: 222.36535206899768 +counts: + 0: 1136 + 1: 78402 + 2: 1360348 + 3: 3592826 + 4: 371061 +name: IBandOnly_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_5_riz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_5_riz_0.npy.yml new file mode 100644 index 00000000..86eeac04 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 435.41443699724346 +FOM_DETF_3x2: 15.921636194650702 +FOM_DETF_gg: 1.2684729737472304 +FOM_DETF_ww: 0.020581755467319617 +FOM_gg: 127.79848735330263 +FOM_ww: 0.292554049125474 +SNR_3x2: 737.9304442113408 +SNR_gg: 729.1740789085793 +SNR_ww: 222.36535206899768 +counts: + 0: 1136 + 1: 78402 + 2: 1360348 + 3: 3592826 + 4: 371061 +name: IBandOnly_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_7_griz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_7_griz_0.npy.yml new file mode 100644 index 00000000..7d18e562 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 703.454307476132 +FOM_DETF_3x2: 20.820961304578546 +FOM_DETF_gg: 1.8989844437764702 +FOM_DETF_ww: 0.02490588501569758 +FOM_gg: 194.5566253438799 +FOM_ww: 0.36269666119416033 +SNR_3x2: 755.7543678004064 +SNR_gg: 747.2889025256941 +SNR_ww: 222.57236317783773 +counts: + 0: 304 + 1: 6837 + 2: 126566 + 3: 915230 + 4: 2891507 + 5: 1186638 + 6: 276691 +name: IBandOnly_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_7_riz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_7_riz_0.npy.yml new file mode 100644 index 00000000..c9488d77 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 703.454307476132 +FOM_DETF_3x2: 20.820961304578546 +FOM_DETF_gg: 1.8989844437764702 +FOM_DETF_ww: 0.02490588501569758 +FOM_gg: 194.5566253438799 +FOM_ww: 0.36269666119416033 +SNR_3x2: 755.7543678004064 +SNR_gg: 747.2889025256941 +SNR_ww: 222.57236317783773 +counts: + 0: 304 + 1: 6837 + 2: 126566 + 3: 915230 + 4: 2891507 + 5: 1186638 + 6: 276691 +name: IBandOnly_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_9_griz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_9_griz_0.npy.yml new file mode 100644 index 00000000..040b33d7 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 867.5899544828716 +FOM_DETF_3x2: 21.978022702772027 +FOM_DETF_gg: 2.159749278495981 +FOM_DETF_ww: 0.027893752147116205 +FOM_gg: 227.81577497586292 +FOM_ww: 0.42329617872300307 +SNR_3x2: 763.737259759929 +SNR_gg: 755.4762721448708 +SNR_ww: 222.66404401514112 +counts: + 0: 158 + 1: 1711 + 2: 18564 + 3: 155393 + 4: 692160 + 5: 1810523 + 6: 2324010 + 7: 186989 + 8: 214265 +name: IBandOnly_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/IBandOnly_9_riz_0.npy.yml b/paper/results/buzzard/metrics/IBandOnly_9_riz_0.npy.yml new file mode 100644 index 00000000..0db36706 --- /dev/null +++ b/paper/results/buzzard/metrics/IBandOnly_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 867.5899544828716 +FOM_DETF_3x2: 21.978022702772027 +FOM_DETF_gg: 2.159749278495981 +FOM_DETF_ww: 0.027893752147116205 +FOM_gg: 227.81577497586292 +FOM_ww: 0.42329617872300307 +SNR_3x2: 763.737259759929 +SNR_gg: 755.4762721448708 +SNR_ww: 222.66404401514112 +counts: + 0: 158 + 1: 1711 + 2: 18564 + 3: 155393 + 4: 692160 + 5: 1810523 + 6: 2324010 + 7: 186989 + 8: 214265 +name: IBandOnly_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_3_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_3_griz_0.npy.yml new file mode 100644 index 00000000..8c364721 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1306.8676011126815 +FOM_DETF_3x2: 43.67479330998025 +FOM_DETF_gg: 5.321451770893333 +FOM_DETF_ww: 0.21618908802200554 +FOM_gg: 475.4710843679528 +FOM_ww: 4.430843253402942 +SNR_3x2: 1084.9956661459719 +SNR_gg: 1083.785437744955 +SNR_ww: 248.15401503258033 +counts: + 0: 1392866 + 1: 3656642 + 2: 354265 +name: JaxCNN_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_3_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_3_riz_0.npy.yml new file mode 100644 index 00000000..7a510767 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1359.4509654737262 +FOM_DETF_3x2: 38.574909863412046 +FOM_DETF_gg: 4.25771824694708 +FOM_DETF_ww: 0.18423483301277005 +FOM_gg: 421.0444782344665 +FOM_ww: 4.021823843523856 +SNR_3x2: 1046.1480144636396 +SNR_gg: 1044.7415823241788 +SNR_ww: 241.01079018445816 +counts: + 0: 4233570 + 1: 252887 + 2: 917316 +name: JaxCNN_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_5_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_5_griz_0.npy.yml new file mode 100644 index 00000000..2713c6e5 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3264.9086289884494 +FOM_DETF_3x2: 71.49637136844507 +FOM_DETF_gg: 11.883171954348105 +FOM_DETF_ww: 0.5078126355077236 +FOM_gg: 1101.9651687093567 +FOM_ww: 13.14917693960928 +SNR_3x2: 1385.9101877771996 +SNR_gg: 1385.3999684840344 +SNR_ww: 256.6881675834928 +counts: + 0: 682990 + 1: 1909811 + 2: 1394251 + 3: 201355 + 4: 1215366 +name: JaxCNN_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_5_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_5_riz_0.npy.yml new file mode 100644 index 00000000..a082df70 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2896.3266262466323 +FOM_DETF_3x2: 58.96973788778586 +FOM_DETF_gg: 9.016805457186413 +FOM_DETF_ww: 0.40787594155822704 +FOM_gg: 872.2282724178957 +FOM_ww: 10.043410184331163 +SNR_3x2: 1320.4964398463126 +SNR_gg: 1319.2239297458102 +SNR_ww: 249.0066802583982 +counts: + 0: 1485797 + 1: 181689 + 2: 1612740 + 3: 1521142 + 4: 602405 +name: JaxCNN_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_7_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_7_griz_0.npy.yml new file mode 100644 index 00000000..e484353a --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5216.428585998068 +FOM_DETF_3x2: 83.14563104469454 +FOM_DETF_gg: 15.957367915629359 +FOM_DETF_ww: 0.5519229030830262 +FOM_gg: 1611.3102475801309 +FOM_ww: 14.886435886409323 +SNR_3x2: 1621.5536117404204 +SNR_gg: 1621.16813764742 +SNR_ww: 258.3184252187816 +counts: + 0: 233249 + 1: 1036139 + 2: 1232295 + 3: 414394 + 4: 595669 + 5: 1316075 + 6: 575952 +name: JaxCNN_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_7_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_7_riz_0.npy.yml new file mode 100644 index 00000000..fc08086e --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5056.402043543919 +FOM_DETF_3x2: 69.72741646378935 +FOM_DETF_gg: 12.698377271598659 +FOM_DETF_ww: 0.45615153316273865 +FOM_gg: 1335.652670991463 +FOM_ww: 11.635765628471498 +SNR_3x2: 1509.7293159379778 +SNR_gg: 1509.0956249489907 +SNR_ww: 251.15935636303684 +counts: + 0: 356368 + 1: 876120 + 2: 495483 + 3: 1253652 + 4: 294624 + 5: 416098 + 6: 1711428 +name: JaxCNN_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_9_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_9_griz_0.npy.yml new file mode 100644 index 00000000..2610fd86 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6143.756561817379 +FOM_DETF_3x2: 95.368871772479 +FOM_DETF_gg: 21.15046535549791 +FOM_DETF_ww: 0.5647211704225432 +FOM_gg: 2152.662001308871 +FOM_ww: 15.54093936358244 +SNR_3x2: 1830.5366496760528 +SNR_gg: 1830.206382485361 +SNR_ww: 258.5810852738291 +counts: + 0: 580297 + 1: 461868 + 2: 151079 + 3: 1222402 + 4: 173456 + 5: 669884 + 6: 572297 + 7: 1004768 + 8: 567722 +name: JaxCNN_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxCNN_9_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxCNN_9_riz_0.npy.yml new file mode 100644 index 00000000..1ad86ba3 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxCNN_9_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 756831 + 1: 322248 + 2: 1212913 + 3: 546621 + 4: 1156649 + 5: 486361 + 7: 424869 + 8: 497281 +name: JaxCNN_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_3_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_3_griz_0.npy.yml new file mode 100644 index 00000000..ca6e69f0 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1682.2236145519444 +FOM_DETF_3x2: 45.88803124857054 +FOM_DETF_gg: 5.6611034863374465 +FOM_DETF_ww: 0.2150698072970903 +FOM_gg: 551.617124777892 +FOM_ww: 4.798118192017359 +SNR_3x2: 1056.106471724152 +SNR_gg: 1054.542262209252 +SNR_ww: 244.42406285438284 +counts: + 0: 193748 + 1: 943336 + 2: 4266689 +name: JaxResNet_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_3_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_3_riz_0.npy.yml new file mode 100644 index 00000000..fe6dd8b0 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1589.266412205011 +FOM_DETF_3x2: 39.58817420847996 +FOM_DETF_gg: 4.5462806752548826 +FOM_DETF_ww: 0.18661678215038466 +FOM_gg: 468.88643923760765 +FOM_ww: 4.193969123838088 +SNR_3x2: 1022.3271956586716 +SNR_gg: 1020.7044716776242 +SNR_ww: 240.11320773535383 +counts: + 0: 838325 + 1: 4359531 + 2: 205917 +name: JaxResNet_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_5_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_5_griz_0.npy.yml new file mode 100644 index 00000000..35f0773c --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_5_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 2360.8386770502643 +FOM_DETF_3x2: 63.264231064269715 +FOM_DETF_gg: 9.200680107369385 +FOM_DETF_ww: 0.5135131644322699 +FOM_gg: 830.512626484014 +FOM_ww: 11.327478519082494 +SNR_3x2: 1246.816328631065 +SNR_gg: 1246.231641357337 +SNR_ww: 255.5686031632308 +counts: + 0: 773164 + 1: 2193155 + 2: 2198210 + 3: 239244 +name: JaxResNet_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_5_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_5_riz_0.npy.yml new file mode 100644 index 00000000..d5d48cb6 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3209.743827726401 +FOM_DETF_3x2: 61.69158686783697 +FOM_DETF_gg: 9.671857373674941 +FOM_DETF_ww: 0.42492973706021697 +FOM_gg: 947.4522915705002 +FOM_ww: 10.233234967208208 +SNR_3x2: 1328.5500508137225 +SNR_gg: 1327.5299174893141 +SNR_ww: 249.54944600716178 +counts: + 0: 188736 + 1: 1696500 + 2: 1709570 + 3: 530384 + 4: 1278583 +name: JaxResNet_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_7_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_7_griz_0.npy.yml new file mode 100644 index 00000000..6ee267f4 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_7_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 1661261 + 1: 511402 + 2: 1448631 + 3: 188852 + 4: 970760 + 6: 622867 +name: JaxResNet_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_7_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_7_riz_0.npy.yml new file mode 100644 index 00000000..be0f8dd1 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_7_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 34625 + 3: 2108665 + 4: 108744 + 5: 660505 + 6: 2491234 +name: JaxResNet_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_9_griz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_9_griz_0.npy.yml new file mode 100644 index 00000000..b7bedd28 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_9_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 119613 + 1: 697918 + 2: 1857428 + 4: 550760 + 7: 1250288 + 8: 927766 +name: JaxResNet_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/JaxResNet_9_riz_0.npy.yml b/paper/results/buzzard/metrics/JaxResNet_9_riz_0.npy.yml new file mode 100644 index 00000000..1e830fc4 --- /dev/null +++ b/paper/results/buzzard/metrics/JaxResNet_9_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 26985 + 1: 422357 + 2: 254805 + 4: 760021 + 5: 415765 + 6: 1111171 + 7: 1314371 + 8: 1098298 +name: JaxResNet_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_3_griz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_3_griz_0.npy.yml new file mode 100644 index 00000000..ad0c5812 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 410.06292033986415 +FOM_DETF_3x2: 17.78942298869345 +FOM_DETF_gg: 0.7961101308622628 +FOM_DETF_ww: 0.0936710367144912 +FOM_gg: 65.49875300146454 +FOM_ww: 1.8320358362075422 +SNR_3x2: 947.7277806895786 +SNR_gg: 944.7764272997988 +SNR_ww: 247.9801785363294 +counts: + 0: 2586877 + 1: 2504155 + 2: 312741 +name: LGBM_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_3_riz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_3_riz_0.npy.yml new file mode 100644 index 00000000..bf47e6a0 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 377.8723757857558 +FOM_DETF_3x2: 18.163996960987735 +FOM_DETF_gg: 0.9508257612039617 +FOM_DETF_ww: 0.08224566199796782 +FOM_gg: 73.2742216261562 +FOM_ww: 1.8332073109040643 +SNR_3x2: 950.9208869222613 +SNR_gg: 947.9167678593096 +SNR_ww: 244.87469093686428 +counts: + 0: 2763403 + 1: 2589787 + 2: 50583 +name: LGBM_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_5_griz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_5_griz_0.npy.yml new file mode 100644 index 00000000..c0466064 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1447.8116602300352 +FOM_DETF_3x2: 39.489663612979804 +FOM_DETF_gg: 4.549045467817291 +FOM_DETF_ww: 0.4478282418883541 +FOM_gg: 410.67592072559876 +FOM_ww: 9.614558246779891 +SNR_3x2: 1307.6783992116455 +SNR_gg: 1306.9344702935184 +SNR_ww: 256.15309813319436 +counts: + 0: 1306811 + 1: 1258254 + 2: 1223717 + 3: 1302250 + 4: 312741 +name: LGBM_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_5_riz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_5_riz_0.npy.yml new file mode 100644 index 00000000..d361d0a0 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1416.6320569330896 +FOM_DETF_3x2: 37.12517877898028 +FOM_DETF_gg: 4.74835749114828 +FOM_DETF_ww: 0.4146497748727136 +FOM_gg: 421.01766366661457 +FOM_ww: 9.510820571522407 +SNR_3x2: 1278.390942670825 +SNR_gg: 1276.708760694207 +SNR_ww: 250.2921617619506 +counts: + 0: 1346672 + 1: 1386888 + 2: 1441969 + 3: 1177661 + 4: 50583 +name: LGBM_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_7_griz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_7_griz_0.npy.yml new file mode 100644 index 00000000..ca8037a3 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3084.7208777649007 +FOM_DETF_3x2: 61.57212865659568 +FOM_DETF_gg: 9.645765409535933 +FOM_DETF_ww: 0.550025266946185 +FOM_gg: 918.9853186476448 +FOM_ww: 14.544305602398484 +SNR_3x2: 1583.7676697851755 +SNR_gg: 1583.394425129953 +SNR_ww: 258.5157405322345 +counts: + 0: 812984 + 1: 900589 + 2: 851823 + 3: 812959 + 4: 857133 + 5: 855544 + 6: 312741 +name: LGBM_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_7_riz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_7_riz_0.npy.yml new file mode 100644 index 00000000..695fe2eb --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3255.595599174981 +FOM_DETF_3x2: 60.931008961051674 +FOM_DETF_gg: 9.979859808522205 +FOM_DETF_ww: 0.484538994719888 +FOM_gg: 968.1564583886546 +FOM_ww: 12.460035598734596 +SNR_3x2: 1544.3011408163873 +SNR_gg: 1543.7735188220738 +SNR_ww: 252.1745037395821 +counts: + 0: 606528 + 1: 1086445 + 2: 1055686 + 3: 843229 + 4: 914787 + 5: 846515 + 6: 50583 +name: LGBM_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_9_griz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_9_griz_0.npy.yml new file mode 100644 index 00000000..00e21911 --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4657.959944262334 +FOM_DETF_3x2: 75.35750010649673 +FOM_DETF_gg: 13.914131112438502 +FOM_DETF_ww: 0.5838214104537377 +FOM_gg: 1382.4773554221536 +FOM_ww: 16.50386776467473 +SNR_3x2: 1814.9196451493035 +SNR_gg: 1814.5999875786918 +SNR_ww: 259.1836760962898 +counts: + 0: 651823 + 1: 659444 + 2: 593896 + 3: 659638 + 4: 603779 + 5: 620855 + 6: 661894 + 7: 639703 + 8: 312741 +name: LGBM_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/LGBM_9_riz_0.npy.yml b/paper/results/buzzard/metrics/LGBM_9_riz_0.npy.yml new file mode 100644 index 00000000..fa8b348e --- /dev/null +++ b/paper/results/buzzard/metrics/LGBM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4807.176795212387 +FOM_DETF_3x2: 70.65832153338262 +FOM_DETF_gg: 13.183881104395564 +FOM_DETF_ww: 0.49850977816091957 +FOM_gg: 1345.7560347453302 +FOM_ww: 13.359161927131495 +SNR_3x2: 1733.0252175133608 +SNR_gg: 1732.5561316424485 +SNR_ww: 252.48431559272177 +counts: + 0: 606174 + 1: 826575 + 2: 546606 + 3: 766177 + 4: 638270 + 5: 720070 + 6: 637000 + 7: 612318 + 8: 50583 +name: LGBM_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_3_griz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_3_griz_0.npy.yml new file mode 100644 index 00000000..315f973e --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 414.2791741429813 +FOM_DETF_3x2: 17.924398169760003 +FOM_DETF_gg: 0.8002736015363876 +FOM_DETF_ww: 0.09761009713573493 +FOM_gg: 65.79121265287729 +FOM_ww: 1.914835989258433 +SNR_3x2: 947.2639480865431 +SNR_gg: 944.3459224423632 +SNR_ww: 248.52007951451918 +counts: + 0: 2635663 + 1: 2455369 + 2: 312741 +name: LSTM_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_3_riz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_3_riz_0.npy.yml new file mode 100644 index 00000000..147a7e61 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 379.8587383212642 +FOM_DETF_3x2: 18.01871754610027 +FOM_DETF_gg: 0.9486214344282227 +FOM_DETF_ww: 0.07976640679614644 +FOM_gg: 73.33494267680302 +FOM_ww: 1.8039364132472198 +SNR_3x2: 951.3152108223754 +SNR_gg: 948.2628227832686 +SNR_ww: 244.38199786838365 +counts: + 0: 2768849 + 1: 2584341 + 2: 50583 +name: LSTM_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_5_griz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_5_griz_0.npy.yml new file mode 100644 index 00000000..4ece5b39 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1420.099678750451 +FOM_DETF_3x2: 38.78635174164671 +FOM_DETF_gg: 4.446781738190252 +FOM_DETF_ww: 0.44955836597048143 +FOM_gg: 400.2670815209852 +FOM_ww: 9.64030623798354 +SNR_3x2: 1307.9302500327196 +SNR_gg: 1307.1353331804894 +SNR_ww: 256.1072104017493 +counts: + 0: 1320516 + 1: 1232712 + 2: 1233162 + 3: 1304642 + 4: 312741 +name: LSTM_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_5_riz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_5_riz_0.npy.yml new file mode 100644 index 00000000..f4d60b44 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1380.1763446704415 +FOM_DETF_3x2: 35.28631124079822 +FOM_DETF_gg: 4.57164521984205 +FOM_DETF_ww: 0.41720930135447365 +FOM_gg: 404.56229721061027 +FOM_ww: 9.565855558698265 +SNR_3x2: 1280.6824419449283 +SNR_gg: 1278.6842891262672 +SNR_ww: 249.96932830835254 +counts: + 0: 1396533 + 1: 1301660 + 2: 1442608 + 3: 1212389 + 4: 50583 +name: LSTM_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_7_griz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_7_griz_0.npy.yml new file mode 100644 index 00000000..9ab196ac --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3081.4857389030303 +FOM_DETF_3x2: 60.87102246703064 +FOM_DETF_gg: 9.556820568326284 +FOM_DETF_ww: 0.5477341761427531 +FOM_gg: 911.850915495009 +FOM_ww: 14.458835922149214 +SNR_3x2: 1583.6285212304617 +SNR_gg: 1583.2421838015835 +SNR_ww: 258.4423826638398 +counts: + 0: 870800 + 1: 940519 + 2: 799728 + 3: 793450 + 4: 815997 + 5: 870538 + 6: 312741 +name: LSTM_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_7_riz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_7_riz_0.npy.yml new file mode 100644 index 00000000..4166dc90 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3260.1160030207834 +FOM_DETF_3x2: 61.14074681726399 +FOM_DETF_gg: 10.053336256580318 +FOM_DETF_ww: 0.4858289399203205 +FOM_gg: 975.2438336876138 +FOM_ww: 12.565052740473346 +SNR_3x2: 1542.8210857722163 +SNR_gg: 1542.2922821079223 +SNR_ww: 252.10950646763396 +counts: + 0: 615637 + 1: 982339 + 2: 1162945 + 3: 805042 + 4: 980624 + 5: 806603 + 6: 50583 +name: LSTM_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_9_griz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_9_griz_0.npy.yml new file mode 100644 index 00000000..e8048894 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4620.123612231367 +FOM_DETF_3x2: 74.73795095811742 +FOM_DETF_gg: 13.750137813073659 +FOM_DETF_ww: 0.5846226187138107 +FOM_gg: 1366.0373319491046 +FOM_ww: 16.539517404799202 +SNR_3x2: 1815.3190193975317 +SNR_gg: 1815.0000139593226 +SNR_ww: 259.2213668957631 +counts: + 0: 673514 + 1: 578084 + 2: 668987 + 3: 616324 + 4: 673784 + 5: 570882 + 6: 625788 + 7: 683669 + 8: 312741 +name: LSTM_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/LSTM_9_riz_0.npy.yml b/paper/results/buzzard/metrics/LSTM_9_riz_0.npy.yml new file mode 100644 index 00000000..6b1efa33 --- /dev/null +++ b/paper/results/buzzard/metrics/LSTM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4764.136457586048 +FOM_DETF_3x2: 69.94864909909305 +FOM_DETF_gg: 13.023135769566682 +FOM_DETF_ww: 0.497127337730224 +FOM_gg: 1330.650027603001 +FOM_ww: 13.347372231048553 +SNR_3x2: 1724.4786551960512 +SNR_gg: 1723.9941788845326 +SNR_ww: 252.33728240158757 +counts: + 0: 718969 + 1: 923852 + 2: 340168 + 3: 789356 + 4: 577917 + 5: 826247 + 6: 580250 + 7: 596431 + 8: 50583 +name: LSTM_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/MineCraft_0_griz_0.npy.yml b/paper/results/buzzard/metrics/MineCraft_0_griz_0.npy.yml new file mode 100644 index 00000000..382cb897 --- /dev/null +++ b/paper/results/buzzard/metrics/MineCraft_0_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 1873.8111009262946 +FOM_DETF_3x2: 34.64546717007507 +FOM_DETF_gg: 4.624076435105663 +FOM_DETF_ww: 0.13667078127958562 +FOM_gg: 455.5650849772257 +FOM_ww: 2.5341010554359573 +SNR_3x2: 1167.386968339546 +SNR_gg: 1164.0367137009764 +SNR_ww: 232.44683546111088 +counts: + 0: 2996039 + 1: 1083336 + 2: 199692 + 3: 248423 + 4: 660548 + 5: 215735 +name: MineCraft_0_griz_0.npy diff --git a/paper/results/buzzard/metrics/MineCraft_0_riz_0.npy.yml b/paper/results/buzzard/metrics/MineCraft_0_riz_0.npy.yml new file mode 100644 index 00000000..2c4667f4 --- /dev/null +++ b/paper/results/buzzard/metrics/MineCraft_0_riz_0.npy.yml @@ -0,0 +1,23 @@ +FOM_3x2: 2376.395069986067 +FOM_DETF_3x2: 33.6792791916331 +FOM_DETF_gg: 4.9821554345304175 +FOM_DETF_ww: 0.13033692558942017 +FOM_gg: 525.5517342410711 +FOM_ww: 2.3160844172702832 +SNR_3x2: 1062.3994090130075 +SNR_gg: 1058.6620554781584 +SNR_ww: 231.108252416465 +counts: + 0: 1604349 + 1: 217849 + 2: 177524 + 3: 170356 + 4: 193364 + 5: 392748 + 6: 186430 + 7: 191813 + 8: 259661 + 9: 432694 + 10: 310335 + 11: 1266650 +name: MineCraft_0_riz_0.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_3_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_3_griz_0.npy.yml new file mode 100644 index 00000000..d799bfd1 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1847.1035001569953 +FOM_DETF_3x2: 46.60166542439515 +FOM_DETF_gg: 5.881449038839913 +FOM_DETF_ww: 0.2211945278553323 +FOM_gg: 588.3139463890468 +FOM_ww: 5.047555954317602 +SNR_3x2: 1062.3502120175324 +SNR_gg: 1060.7549570418817 +SNR_ww: 244.80935024442792 +counts: + 0: 911228 + 1: 4297106 + 2: 195439 +name: NeuralNetwork_3_griz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_3_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_3_riz_0.npy.yml new file mode 100644 index 00000000..5b1c827e --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1799.4858523194448 +FOM_DETF_3x2: 42.801884541277076 +FOM_DETF_gg: 5.173076453242671 +FOM_DETF_ww: 0.17116501372141465 +FOM_gg: 530.1970662731206 +FOM_ww: 3.8516091204050196 +SNR_3x2: 1007.2212895861677 +SNR_gg: 1005.1407743761616 +SNR_ww: 239.82060774561052 +counts: + 0: 100466 + 1: 866731 + 2: 4436576 +name: NeuralNetwork_3_riz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_5_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_5_griz_0.npy.yml new file mode 100644 index 00000000..88d6d9b2 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3701.520310390519 +FOM_DETF_3x2: 74.08622422966293 +FOM_DETF_gg: 12.81027978077657 +FOM_DETF_ww: 0.5608927921866126 +FOM_gg: 1224.466496144382 +FOM_ww: 14.491259002404085 +SNR_3x2: 1381.4207390978231 +SNR_gg: 1380.8891623165628 +SNR_ww: 258.37306531879864 +counts: + 0: 1681363 + 1: 182616 + 2: 1950214 + 3: 558367 + 4: 1031213 +name: NeuralNetwork_5_griz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_5_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_5_riz_0.npy.yml new file mode 100644 index 00000000..c2239b96 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4479.79349412841 +FOM_DETF_3x2: 66.79147709846211 +FOM_DETF_gg: 10.98820061960524 +FOM_DETF_ww: 0.45442949981377184 +FOM_gg: 1168.1685320909805 +FOM_ww: 10.184304579238425 +SNR_3x2: 1326.8477579264309 +SNR_gg: 1326.037072933928 +SNR_ww: 250.0701103810372 +counts: + 0: 159327 + 1: 581666 + 2: 340499 + 3: 2308577 + 4: 2013704 +name: NeuralNetwork_5_riz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_7_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_7_griz_0.npy.yml new file mode 100644 index 00000000..26228234 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5261.952855918511 +FOM_DETF_3x2: 90.90109889383355 +FOM_DETF_gg: 18.486583726163428 +FOM_DETF_ww: 0.6006980493950191 +FOM_gg: 1870.0613788604553 +FOM_ww: 16.40465787613424 +SNR_3x2: 1568.541075154921 +SNR_gg: 1568.1649096464027 +SNR_ww: 259.70737522687983 +counts: + 0: 454545 + 1: 143175 + 2: 1134063 + 3: 164582 + 4: 1187220 + 5: 661741 + 6: 1658447 +name: NeuralNetwork_7_griz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_7_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_7_riz_0.npy.yml new file mode 100644 index 00000000..aa5919c5 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5462.853621043989 +FOM_DETF_3x2: 81.97658887885197 +FOM_DETF_gg: 15.888152612678496 +FOM_DETF_ww: 0.4846232606734577 +FOM_gg: 1699.7979178267842 +FOM_ww: 12.011857939109696 +SNR_3x2: 1537.1377124607502 +SNR_gg: 1536.588012807468 +SNR_ww: 252.55707335684855 +counts: + 0: 1080267 + 1: 245242 + 2: 495746 + 3: 1335213 + 4: 1638349 + 5: 96285 + 6: 512671 +name: NeuralNetwork_7_riz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_9_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_9_griz_0.npy.yml new file mode 100644 index 00000000..6f6eda2b --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7405.492829996983 +FOM_DETF_3x2: 105.36719724152678 +FOM_DETF_gg: 23.441684099595022 +FOM_DETF_ww: 0.6268303346349409 +FOM_gg: 2502.82908636115 +FOM_ww: 17.902377494252068 +SNR_3x2: 1773.490880278921 +SNR_gg: 1773.1559484527534 +SNR_ww: 260.727163547514 +counts: + 0: 349498 + 1: 951223 + 2: 203642 + 3: 1126866 + 4: 1294350 + 5: 692667 + 6: 371096 + 7: 277630 + 8: 136801 +name: NeuralNetwork_9_griz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork1_9_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork1_9_riz_0.npy.yml new file mode 100644 index 00000000..86b6d423 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork1_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7304.100067525514 +FOM_DETF_3x2: 93.65876149892064 +FOM_DETF_gg: 19.88269580122573 +FOM_DETF_ww: 0.5079604160415706 +FOM_gg: 2168.5883999273137 +FOM_ww: 13.31902374138573 +SNR_3x2: 1729.5428653351971 +SNR_gg: 1729.0659319648519 +SNR_ww: 253.1943375072201 +counts: + 0: 871201 + 1: 1330049 + 2: 831036 + 3: 484003 + 4: 857108 + 5: 233427 + 6: 485983 + 7: 77045 + 8: 233921 +name: NeuralNetwork_9_riz_1.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_3_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_3_griz_0.npy.yml new file mode 100644 index 00000000..b94fe5bc --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 525.0275054386444 +FOM_DETF_3x2: 22.177808103826074 +FOM_DETF_gg: 1.2304161021477256 +FOM_DETF_ww: 0.12924107046215955 +FOM_gg: 93.37449365168075 +FOM_ww: 2.8290954725463933 +SNR_3x2: 1159.4082202269697 +SNR_gg: 1157.3316689068115 +SNR_ww: 249.22036248316797 +counts: + 0: 1066702 + 1: 1707491 + 2: 2629580 +name: NeuralNetwork_3_griz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_3_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_3_riz_0.npy.yml new file mode 100644 index 00000000..9bb1ae15 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 559.5107504145799 +FOM_DETF_3x2: 21.8914829951094 +FOM_DETF_gg: 1.4382840506059782 +FOM_DETF_ww: 0.0961860256681314 +FOM_gg: 111.58416791364381 +FOM_ww: 2.305782769021814 +SNR_3x2: 1155.6904829077862 +SNR_gg: 1153.902089223648 +SNR_ww: 244.7469634983661 +counts: + 0: 2590133 + 1: 1634699 + 2: 1178941 +name: NeuralNetwork_3_riz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_5_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_5_griz_0.npy.yml new file mode 100644 index 00000000..4490861c --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1901.997902831485 +FOM_DETF_3x2: 46.96182566225617 +FOM_DETF_gg: 6.548024426844408 +FOM_DETF_ww: 0.3416295870732008 +FOM_gg: 606.600224696058 +FOM_ww: 7.045403244818023 +SNR_3x2: 1485.241672664987 +SNR_gg: 1484.8689079131784 +SNR_ww: 254.73372208948126 +counts: + 0: 665037 + 1: 823754 + 2: 1022932 + 3: 758416 + 4: 2133634 +name: NeuralNetwork_5_griz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_5_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_5_riz_0.npy.yml new file mode 100644 index 00000000..af2a760e --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1931.4580900913859 +FOM_DETF_3x2: 52.05679428097885 +FOM_DETF_gg: 7.438346154576511 +FOM_DETF_ww: 0.4221252000996172 +FOM_gg: 661.2792788722757 +FOM_ww: 9.79835952759061 +SNR_3x2: 1440.3998218763656 +SNR_gg: 1439.895565618649 +SNR_ww: 250.45376025599035 +counts: + 0: 1415637 + 1: 1232102 + 2: 1134581 + 3: 545359 + 4: 1076094 +name: NeuralNetwork_5_riz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_7_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_7_griz_0.npy.yml new file mode 100644 index 00000000..ed543356 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3167.5570141138505 +FOM_DETF_3x2: 59.922564741889516 +FOM_DETF_gg: 10.07819021370726 +FOM_DETF_ww: 0.42947172550206947 +FOM_gg: 976.2649883734176 +FOM_ww: 9.805759869158745 +SNR_3x2: 1744.7267133806604 +SNR_gg: 1744.4164650161024 +SNR_ww: 257.58889752084923 +counts: + 0: 1756752 + 1: 575481 + 2: 673145 + 3: 594730 + 4: 614803 + 5: 512440 + 6: 676422 +name: NeuralNetwork_7_griz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_7_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_7_riz_0.npy.yml new file mode 100644 index 00000000..922b5eab --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3598.1161078068635 +FOM_DETF_3x2: 60.78613053026208 +FOM_DETF_gg: 10.466126663501479 +FOM_DETF_ww: 0.44300167912901256 +FOM_gg: 1037.3840452528211 +FOM_ww: 11.104554686515142 +SNR_3x2: 1664.434901912067 +SNR_gg: 1663.9858176807566 +SNR_ww: 251.481055078557 +counts: + 0: 945621 + 1: 1095155 + 2: 683050 + 3: 796732 + 4: 662821 + 5: 536620 + 6: 683774 +name: NeuralNetwork_7_riz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_9_griz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_9_griz_0.npy.yml new file mode 100644 index 00000000..f5d4c753 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4962.851141325274 +FOM_DETF_3x2: 73.91738211002323 +FOM_DETF_gg: 14.029115210386347 +FOM_DETF_ww: 0.534346669456009 +FOM_gg: 1417.1436281396057 +FOM_ww: 14.131089834079244 +SNR_3x2: 1948.9826475176756 +SNR_gg: 1948.6952375237604 +SNR_ww: 258.9089841021629 +counts: + 0: 448597 + 1: 509810 + 2: 1210756 + 3: 611605 + 4: 461146 + 5: 534930 + 6: 520253 + 7: 479327 + 8: 627349 +name: NeuralNetwork_9_griz_2.npy diff --git a/paper/results/buzzard/metrics/NeuralNetwork2_9_riz_0.npy.yml b/paper/results/buzzard/metrics/NeuralNetwork2_9_riz_0.npy.yml new file mode 100644 index 00000000..3f654523 --- /dev/null +++ b/paper/results/buzzard/metrics/NeuralNetwork2_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6279.153980395949 +FOM_DETF_3x2: 76.48892434626674 +FOM_DETF_gg: 16.00311802585158 +FOM_DETF_ww: 0.47422360166491023 +FOM_gg: 1705.4068876854699 +FOM_ww: 12.636598565722768 +SNR_3x2: 1810.8665251149623 +SNR_gg: 1810.4346059362858 +SNR_ww: 251.47297691269475 +counts: + 0: 927802 + 1: 781447 + 2: 503480 + 3: 729793 + 4: 640399 + 5: 330143 + 6: 609704 + 7: 561312 + 8: 319693 +name: NeuralNetwork_9_riz_2.npy diff --git a/paper/results/buzzard/metrics/PCACluster_3_griz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_3_griz_0.npy.yml new file mode 100644 index 00000000..d231a1a5 --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 975.390491707794 +FOM_DETF_3x2: 20.990452921106378 +FOM_DETF_gg: 2.1856603887245214 +FOM_DETF_ww: 0.06107332921035485 +FOM_gg: 211.57957593109074 +FOM_ww: 1.166964914436892 +SNR_3x2: 943.712796669079 +SNR_gg: 940.9815442522668 +SNR_ww: 232.36368618342186 +counts: + 0: 1447631 + 1: 3393306 + 2: 562836 +name: PCACluster_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/PCACluster_3_riz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_3_riz_0.npy.yml new file mode 100644 index 00000000..43093fcc --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1427.4513373762436 +FOM_DETF_3x2: 22.28260812945105 +FOM_DETF_gg: 2.4280059983481572 +FOM_DETF_ww: 0.16624975481621407 +FOM_gg: 235.12406991751277 +FOM_ww: 3.8411248574276975 +SNR_3x2: 999.5040753766727 +SNR_gg: 996.3459125539073 +SNR_ww: 233.8621921177051 +counts: + 0: 4357687 + 1: 403121 + 2: 642965 +name: PCACluster_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/PCACluster_5_griz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_5_griz_0.npy.yml new file mode 100644 index 00000000..30442d96 --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2764.129432308618 +FOM_DETF_3x2: 44.79499086737438 +FOM_DETF_gg: 7.2464224622853015 +FOM_DETF_ww: 0.1285716864172945 +FOM_gg: 752.5668960804578 +FOM_ww: 2.5361732714140532 +SNR_3x2: 1054.1214486450742 +SNR_gg: 1051.7812509750943 +SNR_ww: 233.74168431635513 +counts: + 0: 114438 + 1: 3220952 + 2: 349805 + 3: 469892 + 4: 1248686 +name: PCACluster_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/PCACluster_5_riz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_5_riz_0.npy.yml new file mode 100644 index 00000000..f375a76f --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3163.0363136107276 +FOM_DETF_3x2: 49.150403226067674 +FOM_DETF_gg: 7.901764946093561 +FOM_DETF_ww: 0.28278536685080324 +FOM_gg: 819.7914769530645 +FOM_ww: 6.047086774666872 +SNR_3x2: 1205.34150957337 +SNR_gg: 1203.9863264855976 +SNR_ww: 241.4345111408523 +counts: + 0: 496297 + 1: 1862548 + 2: 1987036 + 3: 719948 + 4: 337944 +name: PCACluster_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/PCACluster_7_griz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_7_griz_0.npy.yml new file mode 100644 index 00000000..70bb912b --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3722.1929542574308 +FOM_DETF_3x2: 57.60511941728389 +FOM_DETF_gg: 9.405477824230836 +FOM_DETF_ww: 0.24851913238199347 +FOM_gg: 996.344395901747 +FOM_ww: 4.994320133449203 +SNR_3x2: 1171.6862220995524 +SNR_gg: 1170.416511478581 +SNR_ww: 245.66494030203768 +counts: + 0: 80747 + 1: 1064679 + 2: 1681804 + 3: 1682937 + 4: 227652 + 5: 381416 + 6: 284538 +name: PCACluster_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/PCACluster_7_riz_0.npy.yml b/paper/results/buzzard/metrics/PCACluster_7_riz_0.npy.yml new file mode 100644 index 00000000..6ab4a65e --- /dev/null +++ b/paper/results/buzzard/metrics/PCACluster_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4897.604036228196 +FOM_DETF_3x2: 56.370821782572705 +FOM_DETF_gg: 10.146453120174414 +FOM_DETF_ww: 0.20789644259752182 +FOM_gg: 1144.0696988131776 +FOM_ww: 4.204544836979381 +SNR_3x2: 1180.4059272831896 +SNR_gg: 1178.8376278309272 +SNR_ww: 239.95736866179524 +counts: + 0: 99009 + 1: 1932804 + 2: 1476802 + 3: 1401662 + 4: 140997 + 5: 204388 + 6: 148111 +name: PCACluster_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_3_griz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_3_griz_0.npy.yml new file mode 100644 index 00000000..65fff22d --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 717.9373680168476 +FOM_DETF_3x2: 27.862684810568034 +FOM_DETF_gg: 2.392924887722532 +FOM_DETF_ww: 0.3930331725338169 +FOM_gg: 197.92908462969172 +FOM_ww: 6.935872627303303 +SNR_3x2: 1138.0315535626476 +SNR_gg: 1136.695802949363 +SNR_ww: 255.72091224551832 +counts: + 0: 1850417 + 1: 1797669 + 2: 1755687 +name: PQNLD_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_3_riz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_3_riz_0.npy.yml new file mode 100644 index 00000000..79db238a --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 852.3302504689012 +FOM_DETF_3x2: 26.078379627799098 +FOM_DETF_gg: 2.57421264993552 +FOM_DETF_ww: 0.25642835227130517 +FOM_gg: 223.04259164892386 +FOM_ww: 4.637226666665548 +SNR_3x2: 1086.2112090603316 +SNR_gg: 1084.8938783048047 +SNR_ww: 248.15790955446488 +counts: + 0: 1927152 + 1: 1775638 + 2: 1700983 +name: PQNLD_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_5_griz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_5_griz_0.npy.yml new file mode 100644 index 00000000..44f78c91 --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2150.1843482343884 +FOM_DETF_3x2: 51.45625899549458 +FOM_DETF_gg: 6.966796700222861 +FOM_DETF_ww: 0.5602075595975646 +FOM_gg: 638.8747625385124 +FOM_ww: 14.159948239697556 +SNR_3x2: 1432.5953067427556 +SNR_gg: 1432.041062794085 +SNR_ww: 259.907978581336 +counts: + 0: 1114217 + 1: 1105811 + 2: 1073090 + 3: 1099004 + 4: 1011651 +name: PQNLD_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_5_riz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_5_riz_0.npy.yml new file mode 100644 index 00000000..abe7dcc9 --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2390.787562858293 +FOM_DETF_3x2: 45.77073482645295 +FOM_DETF_gg: 6.697805413620472 +FOM_DETF_ww: 0.42500159745550486 +FOM_gg: 650.2433370992585 +FOM_ww: 10.383988248520915 +SNR_3x2: 1345.8283252223018 +SNR_gg: 1345.0797144434762 +SNR_ww: 252.49840859064054 +counts: + 0: 1164255 + 1: 1176904 + 2: 971811 + 3: 1096111 + 4: 994692 +name: PQNLD_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_7_griz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_7_griz_0.npy.yml new file mode 100644 index 00000000..815d217d --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4099.041564649949 +FOM_DETF_3x2: 72.25733385038308 +FOM_DETF_gg: 12.187557163718 +FOM_DETF_ww: 0.6166928032384595 +FOM_gg: 1195.7772320973957 +FOM_ww: 17.343049056736344 +SNR_3x2: 1667.326689365375 +SNR_gg: 1666.9635955111085 +SNR_ww: 261.29340025031456 +counts: + 0: 738354 + 1: 802813 + 2: 802231 + 3: 770425 + 4: 856744 + 5: 748369 + 6: 684837 +name: PQNLD_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_7_riz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_7_riz_0.npy.yml new file mode 100644 index 00000000..f19d1438 --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4131.348305489035 +FOM_DETF_3x2: 62.51674321287725 +FOM_DETF_gg: 10.864214874693623 +FOM_DETF_ww: 0.46130659509382166 +FOM_gg: 1109.6520596261178 +FOM_ww: 11.911467577719085 +SNR_3x2: 1498.4118743207257 +SNR_gg: 1497.8641314259962 +SNR_ww: 253.56458046596546 +counts: + 0: 837899 + 1: 849400 + 2: 816907 + 3: 786187 + 4: 739661 + 5: 626074 + 6: 747645 +name: PQNLD_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_9_griz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_9_griz_0.npy.yml new file mode 100644 index 00000000..f0f5ae72 --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5593.708580016675 +FOM_DETF_3x2: 84.3106395244803 +FOM_DETF_gg: 15.88953383430466 +FOM_DETF_ww: 0.6307602970708966 +FOM_gg: 1611.877678166095 +FOM_ww: 18.279316990266228 +SNR_3x2: 1858.484347846148 +SNR_gg: 1858.175371329819 +SNR_ww: 261.76439915626503 +counts: + 0: 601004 + 1: 608283 + 2: 596566 + 3: 603426 + 4: 587522 + 5: 626249 + 6: 618590 + 7: 600331 + 8: 561802 +name: PQNLD_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/PQNLD_9_riz_0.npy.yml b/paper/results/buzzard/metrics/PQNLD_9_riz_0.npy.yml new file mode 100644 index 00000000..76108b8d --- /dev/null +++ b/paper/results/buzzard/metrics/PQNLD_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5281.174419849303 +FOM_DETF_3x2: 70.56549829907961 +FOM_DETF_gg: 13.39993984704217 +FOM_DETF_ww: 0.4777997303803384 +FOM_gg: 1406.6166269882065 +FOM_ww: 12.726455137562544 +SNR_3x2: 1609.6370446496662 +SNR_gg: 1609.1583812785357 +SNR_ww: 254.0559762138387 +counts: + 0: 578043 + 1: 668406 + 2: 632895 + 3: 605250 + 4: 529753 + 5: 612625 + 6: 641000 + 7: 583056 + 8: 552745 +name: PQNLD_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_3_griz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_3_griz_0.npy.yml new file mode 100644 index 00000000..416d9da0 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 688.8852797424968 +FOM_DETF_3x2: 27.25262420635246 +FOM_DETF_gg: 2.2638613028122814 +FOM_DETF_ww: 0.38238841140725643 +FOM_gg: 185.5644039003581 +FOM_ww: 6.796681363384147 +SNR_3x2: 1141.6879758257846 +SNR_gg: 1140.2934536435255 +SNR_ww: 255.52345004655885 +counts: + 0: 1817389 + 1: 1762098 + 2: 1824286 +name: RandomForest_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_3_riz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_3_riz_0.npy.yml new file mode 100644 index 00000000..9acc1926 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 593.0707040741785 +FOM_DETF_3x2: 23.903543433742 +FOM_DETF_gg: 1.9499627947609104 +FOM_DETF_ww: 0.27442224297987605 +FOM_gg: 153.22129973079296 +FOM_ww: 4.595792656002807 +SNR_3x2: 1113.1650123277384 +SNR_gg: 1111.3334679771979 +SNR_ww: 246.9953331725733 +counts: + 0: 1794825 + 1: 1835360 + 2: 1773588 +name: RandomForest_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_5_griz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_5_griz_0.npy.yml new file mode 100644 index 00000000..95ec55e2 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2146.3987599227216 +FOM_DETF_3x2: 52.08228961116451 +FOM_DETF_gg: 7.078860530127931 +FOM_DETF_ww: 0.5454133733619246 +FOM_gg: 648.4244200583581 +FOM_ww: 13.783487319229708 +SNR_3x2: 1448.820137482202 +SNR_gg: 1448.3316095578832 +SNR_ww: 259.5874852081422 +counts: + 0: 1052995 + 1: 1113895 + 2: 1062370 + 3: 1080553 + 4: 1093960 +name: RandomForest_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_5_riz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_5_riz_0.npy.yml new file mode 100644 index 00000000..5ceeaf4f --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2288.5353737926444 +FOM_DETF_3x2: 53.42592198746883 +FOM_DETF_gg: 7.83308130691685 +FOM_DETF_ww: 0.44041023094474807 +FOM_gg: 722.7330668875137 +FOM_ww: 10.7947292282866 +SNR_3x2: 1403.7116152091437 +SNR_gg: 1403.0993998361912 +SNR_ww: 250.79090364134967 +counts: + 0: 913992 + 1: 1284650 + 2: 1077527 + 3: 1093898 + 4: 1033706 +name: RandomForest_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_7_griz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_7_griz_0.npy.yml new file mode 100644 index 00000000..f37fe7c1 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3980.9200167764884 +FOM_DETF_3x2: 70.37007063810303 +FOM_DETF_gg: 12.048877831549348 +FOM_DETF_ww: 0.6055142044001305 +FOM_gg: 1175.4174208275294 +FOM_ww: 17.17482075514764 +SNR_3x2: 1702.5943339600615 +SNR_gg: 1702.2421154325082 +SNR_ww: 260.91062375486365 +counts: + 0: 771297 + 1: 835027 + 2: 724136 + 3: 752891 + 4: 744279 + 5: 790818 + 6: 785325 +name: RandomForest_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_7_riz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_7_riz_0.npy.yml new file mode 100644 index 00000000..36be29cd --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3981.950984988161 +FOM_DETF_3x2: 64.9992370949418 +FOM_DETF_gg: 11.438697706743946 +FOM_DETF_ww: 0.4836510566534526 +FOM_gg: 1144.8629982368645 +FOM_ww: 12.596801384788948 +SNR_3x2: 1624.3185172369479 +SNR_gg: 1623.823311881465 +SNR_ww: 251.98163633162002 +counts: + 0: 728615 + 1: 904785 + 2: 758042 + 3: 730677 + 4: 791765 + 5: 759043 + 6: 730846 +name: RandomForest_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_9_griz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_9_griz_0.npy.yml new file mode 100644 index 00000000..303a5eb1 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5647.63344567927 +FOM_DETF_3x2: 83.5489027105317 +FOM_DETF_gg: 16.344116963541037 +FOM_DETF_ww: 0.6231726210700742 +FOM_gg: 1658.2066495696024 +FOM_ww: 18.24939875186211 +SNR_3x2: 1913.2615378620321 +SNR_gg: 1912.9537842831396 +SNR_ww: 261.313529076361 +counts: + 0: 631520 + 1: 606657 + 2: 565008 + 3: 608469 + 4: 595288 + 5: 578981 + 6: 597330 + 7: 613397 + 8: 607123 +name: RandomForest_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/RandomForest_9_riz_0.npy.yml b/paper/results/buzzard/metrics/RandomForest_9_riz_0.npy.yml new file mode 100644 index 00000000..9a19e0b9 --- /dev/null +++ b/paper/results/buzzard/metrics/RandomForest_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5272.581534959411 +FOM_DETF_3x2: 72.50922763170409 +FOM_DETF_gg: 14.0887700369866 +FOM_DETF_ww: 0.4905933607930105 +FOM_gg: 1461.9663974803439 +FOM_ww: 13.115625105187632 +SNR_3x2: 1722.458151373193 +SNR_gg: 1721.9135417372615 +SNR_ww: 252.08179747614844 +counts: + 0: 625102 + 1: 499480 + 2: 659249 + 3: 677613 + 4: 597400 + 5: 598064 + 6: 588175 + 7: 607696 + 8: 550994 +name: RandomForest_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/Random_3_griz_0.npy.yml b/paper/results/buzzard/metrics/Random_3_griz_0.npy.yml new file mode 100644 index 00000000..4d7b7b60 --- /dev/null +++ b/paper/results/buzzard/metrics/Random_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 5.642727769456503 +FOM_DETF_3x2: 0.7710582186207577 +FOM_DETF_gg: 0.0017066139924799063 +FOM_DETF_ww: 7.115480169223201e-05 +FOM_gg: 0.2977123981906712 +FOM_ww: 0.00515736549976168 +SNR_3x2: 680.4911694560733 +SNR_gg: 673.9711170410218 +SNR_ww: 221.54932042623176 +counts: + 0: 1796832 + 1: 1799950 + 2: 1806991 +name: Random_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/Random_3_riz_0.npy.yml b/paper/results/buzzard/metrics/Random_3_riz_0.npy.yml new file mode 100644 index 00000000..8a13350e --- /dev/null +++ b/paper/results/buzzard/metrics/Random_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 5.642727769456503 +FOM_DETF_3x2: 0.7710582186207577 +FOM_DETF_gg: 0.0017066139924799063 +FOM_DETF_ww: 7.115480169223201e-05 +FOM_gg: 0.2977123981906712 +FOM_ww: 0.00515736549976168 +SNR_3x2: 680.4911694560733 +SNR_gg: 673.9711170410218 +SNR_ww: 221.54932042623176 +counts: + 0: 1796832 + 1: 1799950 + 2: 1806991 +name: Random_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/Random_5_griz_0.npy.yml b/paper/results/buzzard/metrics/Random_5_griz_0.npy.yml new file mode 100644 index 00000000..0f7b82e0 --- /dev/null +++ b/paper/results/buzzard/metrics/Random_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 5.800405249029331 +FOM_DETF_3x2: 0.7720919181268108 +FOM_DETF_gg: 0.001911373458025424 +FOM_DETF_ww: 7.037938735509224e-05 +FOM_gg: 0.337950781087061 +FOM_ww: 0.0050963651517331315 +SNR_3x2: 680.4926183013889 +SNR_gg: 673.9711665566819 +SNR_ww: 221.54932043629384 +counts: + 0: 1077911 + 1: 1081861 + 2: 1085251 + 3: 1080360 + 4: 1078390 +name: Random_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/Random_5_riz_0.npy.yml b/paper/results/buzzard/metrics/Random_5_riz_0.npy.yml new file mode 100644 index 00000000..f3741d80 --- /dev/null +++ b/paper/results/buzzard/metrics/Random_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 5.800405249029331 +FOM_DETF_3x2: 0.7720919181268108 +FOM_DETF_gg: 0.001911373458025424 +FOM_DETF_ww: 7.037938735509224e-05 +FOM_gg: 0.337950781087061 +FOM_ww: 0.0050963651517331315 +SNR_3x2: 680.4926183013889 +SNR_gg: 673.9711665566819 +SNR_ww: 221.54932043629384 +counts: + 0: 1077911 + 1: 1081861 + 2: 1085251 + 3: 1080360 + 4: 1078390 +name: Random_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/Random_7_griz_0.npy.yml b/paper/results/buzzard/metrics/Random_7_griz_0.npy.yml new file mode 100644 index 00000000..238e7c48 --- /dev/null +++ b/paper/results/buzzard/metrics/Random_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5.999666884112715 +FOM_DETF_3x2: 0.7861034398823518 +FOM_DETF_gg: 0.0020822595443384362 +FOM_DETF_ww: 7.304850689933771e-05 +FOM_gg: 0.3675877048747663 +FOM_ww: 0.005283157890523282 +SNR_3x2: 680.4921637394093 +SNR_gg: 673.9712639299293 +SNR_ww: 221.54932890167882 +counts: + 0: 768220 + 1: 772160 + 2: 775631 + 3: 773460 + 4: 770610 + 5: 769950 + 6: 773742 +name: Random_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/Random_7_riz_0.npy.yml b/paper/results/buzzard/metrics/Random_7_riz_0.npy.yml new file mode 100644 index 00000000..f4691baf --- /dev/null +++ b/paper/results/buzzard/metrics/Random_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5.999666884112715 +FOM_DETF_3x2: 0.7861034398823518 +FOM_DETF_gg: 0.0020822595443384362 +FOM_DETF_ww: 7.304850689933771e-05 +FOM_gg: 0.3675877048747663 +FOM_ww: 0.005283157890523282 +SNR_3x2: 680.4921637394093 +SNR_gg: 673.9712639299293 +SNR_ww: 221.54932890167882 +counts: + 0: 768220 + 1: 772160 + 2: 775631 + 3: 773460 + 4: 770610 + 5: 769950 + 6: 773742 +name: Random_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/Random_9_griz_0.npy.yml b/paper/results/buzzard/metrics/Random_9_griz_0.npy.yml new file mode 100644 index 00000000..12af51be --- /dev/null +++ b/paper/results/buzzard/metrics/Random_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6.2512491380411 +FOM_DETF_3x2: 0.789339725934546 +FOM_DETF_gg: 0.002439434840776306 +FOM_DETF_ww: 7.870367224481284e-05 +FOM_gg: 0.42959959254594837 +FOM_ww: 0.00567851961435069 +SNR_3x2: 680.4929893694786 +SNR_gg: 673.9713985467761 +SNR_ww: 221.5493497142643 +counts: + 0: 597330 + 1: 601900 + 2: 601012 + 3: 600880 + 4: 598370 + 5: 602441 + 6: 600780 + 7: 602250 + 8: 598810 +name: Random_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/Random_9_riz_0.npy.yml b/paper/results/buzzard/metrics/Random_9_riz_0.npy.yml new file mode 100644 index 00000000..e3b92d37 --- /dev/null +++ b/paper/results/buzzard/metrics/Random_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6.2512491380411 +FOM_DETF_3x2: 0.789339725934546 +FOM_DETF_gg: 0.002439434840776306 +FOM_DETF_ww: 7.870367224481284e-05 +FOM_gg: 0.42959959254594837 +FOM_ww: 0.00567851961435069 +SNR_3x2: 680.4929893694786 +SNR_gg: 673.9713985467761 +SNR_ww: 221.5493497142643 +counts: + 0: 597330 + 1: 601900 + 2: 601012 + 3: 600880 + 4: 598370 + 5: 602441 + 6: 600780 + 7: 602250 + 8: 598810 +name: Random_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_3_griz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_3_griz_0.npy.yml new file mode 100644 index 00000000..42e84e58 --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 758.8982918672081 +FOM_DETF_3x2: 28.335214324593935 +FOM_DETF_gg: 2.5242874399574218 +FOM_DETF_ww: 0.4135872852084711 +FOM_gg: 211.0247435921036 +FOM_ww: 7.342901063398894 +SNR_3x2: 1134.4348546211445 +SNR_gg: 1133.08165047331 +SNR_ww: 255.9042799167722 +counts: + 0: 1852873 + 1: 1919546 + 2: 1631354 +name: SimpleSOM_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_3_riz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_3_riz_0.npy.yml new file mode 100644 index 00000000..e06241ed --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 843.6505243983731 +FOM_DETF_3x2: 26.05146238418401 +FOM_DETF_gg: 2.574620929209633 +FOM_DETF_ww: 0.26139734478193233 +FOM_gg: 222.13820905778059 +FOM_ww: 4.718241408891668 +SNR_3x2: 1087.0581596654545 +SNR_gg: 1085.7249510976862 +SNR_ww: 248.17673109292372 +counts: + 0: 1934811 + 1: 1787667 + 2: 1681295 +name: SimpleSOM_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_5_griz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_5_griz_0.npy.yml new file mode 100644 index 00000000..bc84748f --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2310.325084002989 +FOM_DETF_3x2: 51.88407451471778 +FOM_DETF_gg: 7.325575191483302 +FOM_DETF_ww: 0.5751022932666469 +FOM_gg: 680.2112398849787 +FOM_ww: 15.003131632903523 +SNR_3x2: 1424.7567165196542 +SNR_gg: 1424.1777371996109 +SNR_ww: 260.11049607242535 +counts: + 0: 1145883 + 1: 1208553 + 2: 1104639 + 3: 1037524 + 4: 907174 +name: SimpleSOM_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_5_riz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_5_riz_0.npy.yml new file mode 100644 index 00000000..406d7946 --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2417.6568608392436 +FOM_DETF_3x2: 46.32390690992304 +FOM_DETF_gg: 6.795179656082648 +FOM_DETF_ww: 0.4235731827530983 +FOM_gg: 660.3247708604642 +FOM_ww: 10.357023826608945 +SNR_3x2: 1347.1827179477764 +SNR_gg: 1346.4520520121207 +SNR_ww: 252.48553252757748 +counts: + 0: 1142716 + 1: 1176398 + 2: 1014043 + 3: 1081140 + 4: 989476 +name: SimpleSOM_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_7_griz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_7_griz_0.npy.yml new file mode 100644 index 00000000..83a9055d --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4254.266253282394 +FOM_DETF_3x2: 70.77961718540364 +FOM_DETF_gg: 12.13856198329195 +FOM_DETF_ww: 0.6193631524327876 +FOM_gg: 1204.7851812812198 +FOM_ww: 17.56676313099634 +SNR_3x2: 1664.8648244102017 +SNR_gg: 1664.4861240114944 +SNR_ww: 261.3351082338378 +counts: + 0: 813788 + 1: 867873 + 2: 856505 + 3: 776186 + 4: 720498 + 5: 718623 + 6: 650300 +name: SimpleSOM_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_7_riz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_7_riz_0.npy.yml new file mode 100644 index 00000000..e5885153 --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4138.860525542667 +FOM_DETF_3x2: 64.25839712944186 +FOM_DETF_gg: 11.196446022174209 +FOM_DETF_ww: 0.46426726146718816 +FOM_gg: 1137.912309934494 +FOM_ww: 12.036019642212484 +SNR_3x2: 1517.0617681149376 +SNR_gg: 1516.5459100802946 +SNR_ww: 253.59557450358525 +counts: + 0: 778824 + 1: 851781 + 2: 818275 + 3: 691918 + 4: 792089 + 5: 782371 + 6: 688515 +name: SimpleSOM_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_9_griz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_9_griz_0.npy.yml new file mode 100644 index 00000000..b239d3a4 --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5685.87427393424 +FOM_DETF_3x2: 84.7161989935696 +FOM_DETF_gg: 15.874952998831303 +FOM_DETF_ww: 0.6349130713083259 +FOM_gg: 1622.1566142485362 +FOM_ww: 18.46814867845891 +SNR_3x2: 1830.9035400649286 +SNR_gg: 1830.585964698528 +SNR_ww: 261.8141835299291 +counts: + 0: 610876 + 1: 631266 + 2: 635187 + 3: 661756 + 4: 598348 + 5: 679165 + 6: 622608 + 7: 524224 + 8: 440343 +name: SimpleSOM_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/SimpleSOM_9_riz_0.npy.yml b/paper/results/buzzard/metrics/SimpleSOM_9_riz_0.npy.yml new file mode 100644 index 00000000..0530feb8 --- /dev/null +++ b/paper/results/buzzard/metrics/SimpleSOM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5352.881238406779 +FOM_DETF_3x2: 70.71298474919911 +FOM_DETF_gg: 13.45304643502473 +FOM_DETF_ww: 0.4778757055550005 +FOM_gg: 1415.1538275607877 +FOM_ww: 12.73490515251974 +SNR_3x2: 1609.0884201807726 +SNR_gg: 1608.5950510499463 +SNR_ww: 254.01962817499017 +counts: + 0: 643116 + 1: 624190 + 2: 650969 + 3: 636913 + 4: 548430 + 5: 577771 + 6: 616822 + 7: 562430 + 8: 543132 +name: SimpleSOM_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_3_griz_0.npy.yml b/paper/results/buzzard/metrics/TCN_3_griz_0.npy.yml new file mode 100644 index 00000000..2f93f12d --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 797.1247610602724 +FOM_DETF_3x2: 27.001249471850652 +FOM_DETF_gg: 2.302589891801158 +FOM_DETF_ww: 0.34981848361212936 +FOM_gg: 198.48668167939124 +FOM_ww: 6.201361806985728 +SNR_3x2: 1143.531965905024 +SNR_gg: 1142.1263663571058 +SNR_ww: 253.72846695560287 +counts: + 0: 1766231 + 1: 1578419 + 2: 1746382 + 3: 312741 +name: TCN_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_3_riz_0.npy.yml b/paper/results/buzzard/metrics/TCN_3_riz_0.npy.yml new file mode 100644 index 00000000..32d69c8c --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 738.4508509731262 +FOM_DETF_3x2: 26.557212053723593 +FOM_DETF_gg: 2.5471912483268184 +FOM_DETF_ww: 0.28879405036917694 +FOM_gg: 207.07029454092145 +FOM_ww: 5.012274617995039 +SNR_3x2: 1125.29636448981 +SNR_gg: 1122.7009741494003 +SNR_ww: 247.02744671686784 +counts: + 0: 1888219 + 1: 1734603 + 2: 1730368 + 3: 50583 +name: TCN_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_5_griz_0.npy.yml b/paper/results/buzzard/metrics/TCN_5_griz_0.npy.yml new file mode 100644 index 00000000..4af1b8e5 --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2104.7909497495248 +FOM_DETF_3x2: 49.18751981466751 +FOM_DETF_gg: 6.675505741356833 +FOM_DETF_ww: 0.5051221694850373 +FOM_gg: 616.642218560912 +FOM_ww: 12.199281497210144 +SNR_3x2: 1450.164862211335 +SNR_gg: 1449.6115660065436 +SNR_ww: 257.38207748012894 +counts: + 0: 1139532 + 1: 911681 + 2: 994842 + 3: 991370 + 4: 1053607 + 5: 312741 +name: TCN_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_5_riz_0.npy.yml b/paper/results/buzzard/metrics/TCN_5_riz_0.npy.yml new file mode 100644 index 00000000..21bbc66a --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2367.4131508636456 +FOM_DETF_3x2: 53.71952750639465 +FOM_DETF_gg: 7.942732315758347 +FOM_DETF_ww: 0.44190012764509906 +FOM_gg: 737.9418131567569 +FOM_ww: 10.902052214873702 +SNR_3x2: 1423.6644158321633 +SNR_gg: 1423.020821220058 +SNR_ww: 251.03978550696513 +counts: + 0: 704400 + 1: 1447394 + 2: 1114939 + 3: 1049121 + 4: 1037336 + 5: 50583 +name: TCN_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_7_griz_0.npy.yml b/paper/results/buzzard/metrics/TCN_7_griz_0.npy.yml new file mode 100644 index 00000000..90f4d224 --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 3919.0935149080715 +FOM_DETF_3x2: 69.430181845052 +FOM_DETF_gg: 11.953661912894555 +FOM_DETF_ww: 0.571121060697146 +FOM_gg: 1165.221935070907 +FOM_ww: 15.774818975089588 +SNR_3x2: 1701.908045612099 +SNR_gg: 1701.561604023894 +SNR_ww: 258.8726739832474 +counts: + 0: 694509 + 1: 841414 + 2: 664451 + 3: 717180 + 4: 704043 + 5: 742517 + 6: 726918 + 7: 312741 +name: TCN_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_7_riz_0.npy.yml b/paper/results/buzzard/metrics/TCN_7_riz_0.npy.yml new file mode 100644 index 00000000..476c541c --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 4055.0211112273896 +FOM_DETF_3x2: 65.66847921498677 +FOM_DETF_gg: 11.598591944043463 +FOM_DETF_ww: 0.49011933458975726 +FOM_gg: 1162.0134790271757 +FOM_ww: 12.872502092926386 +SNR_3x2: 1647.505004785643 +SNR_gg: 1646.9930740119212 +SNR_ww: 252.23577462727053 +counts: + 0: 629194 + 1: 914575 + 2: 883807 + 3: 649280 + 4: 858230 + 5: 699871 + 6: 718233 + 7: 50583 +name: TCN_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_9_griz_0.npy.yml b/paper/results/buzzard/metrics/TCN_9_griz_0.npy.yml new file mode 100644 index 00000000..c16c419d --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 5613.287431036619 +FOM_DETF_3x2: 82.44397788151714 +FOM_DETF_gg: 16.271619828854792 +FOM_DETF_ww: 0.5785372872315232 +FOM_gg: 1651.748196102524 +FOM_ww: 16.41056550836312 +SNR_3x2: 1913.705322442812 +SNR_gg: 1913.3981553866504 +SNR_ww: 259.0711963801663 +counts: + 0: 562431 + 1: 594247 + 2: 550028 + 3: 546710 + 4: 603730 + 5: 547390 + 6: 562817 + 7: 596925 + 8: 526754 + 9: 312741 +name: TCN_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/TCN_9_riz_0.npy.yml b/paper/results/buzzard/metrics/TCN_9_riz_0.npy.yml new file mode 100644 index 00000000..9c3cf75e --- /dev/null +++ b/paper/results/buzzard/metrics/TCN_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 5414.238682091477 +FOM_DETF_3x2: 74.5939631200999 +FOM_DETF_gg: 14.627289111918646 +FOM_DETF_ww: 0.4971211129541685 +FOM_gg: 1514.0424514095698 +FOM_ww: 13.42996052018709 +SNR_3x2: 1761.9690000942742 +SNR_gg: 1761.4321707501751 +SNR_ww: 252.27979061990672 +counts: + 0: 535573 + 1: 460177 + 2: 658490 + 3: 714007 + 4: 625737 + 5: 636424 + 6: 582892 + 7: 650764 + 8: 489126 + 9: 50583 +name: TCN_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_3_griz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_3_griz_0.npy.yml new file mode 100644 index 00000000..be4e8859 --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 692.9800877079133 +FOM_DETF_3x2: 27.097258166781806 +FOM_DETF_gg: 2.2520913563276554 +FOM_DETF_ww: 0.37881907159962735 +FOM_gg: 184.89648877196402 +FOM_ww: 6.801439583930499 +SNR_3x2: 1141.8022293385695 +SNR_gg: 1140.3785527242528 +SNR_ww: 255.14323564444925 +counts: + 0: 1811851 + 1: 1773245 + 2: 1818677 +name: TensorFlow_FFNN_3_griz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_3_riz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_3_riz_0.npy.yml new file mode 100644 index 00000000..0d4f8243 --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 596.2725034722223 +FOM_DETF_3x2: 23.924243980441627 +FOM_DETF_gg: 1.9499240511801832 +FOM_DETF_ww: 0.27795101083673784 +FOM_gg: 153.45385717748454 +FOM_ww: 4.713419703991158 +SNR_3x2: 1117.6191295214844 +SNR_gg: 1115.7891312676988 +SNR_ww: 247.1341558632119 +counts: + 0: 1826249 + 1: 1777937 + 2: 1799587 +name: TensorFlow_FFNN_3_riz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_5_griz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_5_griz_0.npy.yml new file mode 100644 index 00000000..0208f17d --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2152.6217976180396 +FOM_DETF_3x2: 52.12558535116695 +FOM_DETF_gg: 7.114002879956938 +FOM_DETF_ww: 0.5390407478987608 +FOM_gg: 652.0039759337341 +FOM_ww: 13.651243445041999 +SNR_3x2: 1448.679665439839 +SNR_gg: 1448.1910466680542 +SNR_ww: 259.13138723841985 +counts: + 0: 1053132 + 1: 1128944 + 2: 1038467 + 3: 1103183 + 4: 1080047 +name: TensorFlow_FFNN_5_griz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_5_riz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_5_riz_0.npy.yml new file mode 100644 index 00000000..1ce7e72d --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2314.8115075167493 +FOM_DETF_3x2: 53.43166118549663 +FOM_DETF_gg: 7.903634377638833 +FOM_DETF_ww: 0.44504682288890746 +FOM_gg: 730.2745350438785 +FOM_ww: 11.042855828278743 +SNR_3x2: 1417.726785709976 +SNR_gg: 1417.1620059004429 +SNR_ww: 251.42957908170928 +counts: + 0: 774220 + 1: 1522686 + 2: 981485 + 3: 1085208 + 4: 1040174 +name: TensorFlow_FFNN_5_riz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_7_griz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_7_griz_0.npy.yml new file mode 100644 index 00000000..9d8ce57b --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3987.915227998064 +FOM_DETF_3x2: 69.95724704353115 +FOM_DETF_gg: 11.967634239427916 +FOM_DETF_ww: 0.5959705271779165 +FOM_gg: 1169.2425591843166 +FOM_ww: 16.849518191005636 +SNR_3x2: 1703.0552347178182 +SNR_gg: 1702.7042924490138 +SNR_ww: 260.4923598049612 +counts: + 0: 776661 + 1: 858212 + 2: 693119 + 3: 764949 + 4: 720191 + 5: 791945 + 6: 798696 +name: TensorFlow_FFNN_7_griz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_7_riz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_7_riz_0.npy.yml new file mode 100644 index 00000000..6babfa06 --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4020.665218649683 +FOM_DETF_3x2: 65.34509787078568 +FOM_DETF_gg: 11.595958602697563 +FOM_DETF_ww: 0.48899943302987775 +FOM_gg: 1160.1401950148593 +FOM_ww: 12.80610917434862 +SNR_3x2: 1639.7235493017715 +SNR_gg: 1639.23561312472 +SNR_ww: 252.46225032899503 +counts: + 0: 736359 + 1: 906332 + 2: 797258 + 3: 680068 + 4: 772403 + 5: 835701 + 6: 675652 +name: TensorFlow_FFNN_7_riz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_9_griz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_9_griz_0.npy.yml new file mode 100644 index 00000000..9df84060 --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5677.053314823537 +FOM_DETF_3x2: 83.49423240180057 +FOM_DETF_gg: 16.419285257660334 +FOM_DETF_ww: 0.6097852410599697 +FOM_gg: 1668.307043825977 +FOM_ww: 17.730420220960575 +SNR_3x2: 1911.2385564767703 +SNR_gg: 1910.9309228032434 +SNR_ww: 260.84267752023993 +counts: + 0: 586540 + 1: 612904 + 2: 580795 + 3: 574004 + 4: 666055 + 5: 579320 + 6: 584607 + 7: 632945 + 8: 586603 +name: TensorFlow_FFNN_9_griz_1.npy diff --git a/paper/results/buzzard/metrics/TensorFlow_FFNN_9_riz_0.npy.yml b/paper/results/buzzard/metrics/TensorFlow_FFNN_9_riz_0.npy.yml new file mode 100644 index 00000000..b238748b --- /dev/null +++ b/paper/results/buzzard/metrics/TensorFlow_FFNN_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5251.927103942369 +FOM_DETF_3x2: 72.3616718229231 +FOM_DETF_gg: 14.11746416865172 +FOM_DETF_ww: 0.4990676307062229 +FOM_gg: 1465.76952939532 +FOM_ww: 13.454928836258789 +SNR_3x2: 1745.2301291578156 +SNR_gg: 1744.6836796021084 +SNR_ww: 252.59145745108475 +counts: + 0: 648580 + 1: 265229 + 2: 826995 + 3: 793237 + 4: 475783 + 5: 710236 + 6: 544821 + 7: 536197 + 8: 602695 +name: TensorFlow_FFNN_9_riz_1.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_3_griz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_3_griz_0.npy.yml new file mode 100644 index 00000000..1e8effbd --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 699.6501702019597 +FOM_DETF_3x2: 27.875021300388546 +FOM_DETF_gg: 2.367066398096532 +FOM_DETF_ww: 0.3807932662718952 +FOM_gg: 194.80015294315575 +FOM_ww: 6.631105441543711 +SNR_3x2: 1137.4450649601636 +SNR_gg: 1136.1904551923037 +SNR_ww: 255.46651900882034 +counts: + 0: 1801280 + 1: 1801246 + 2: 1801247 +name: UTOPIA_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_3_riz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_3_riz_0.npy.yml new file mode 100644 index 00000000..415d4158 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 588.9439042341082 +FOM_DETF_3x2: 24.944951936518898 +FOM_DETF_gg: 2.18902412847004 +FOM_DETF_ww: 0.28114447772399576 +FOM_gg: 172.74645711108988 +FOM_ww: 4.241321194970735 +SNR_3x2: 1100.536798804898 +SNR_gg: 1099.2136744835345 +SNR_ww: 246.95197855291084 +counts: + 0: 1801282 + 1: 1801248 + 2: 1801243 +name: UTOPIA_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_5_griz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_5_griz_0.npy.yml new file mode 100644 index 00000000..dde13061 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2215.4310538225154 +FOM_DETF_3x2: 52.93594506842846 +FOM_DETF_gg: 7.229813344941149 +FOM_DETF_ww: 0.5336418829502588 +FOM_gg: 667.1686640056199 +FOM_ww: 13.036262585656782 +SNR_3x2: 1436.035148748294 +SNR_gg: 1435.5764111857852 +SNR_ww: 259.2907126208298 +counts: + 0: 1080795 + 1: 1080745 + 2: 1080745 + 3: 1080744 + 4: 1080744 +name: UTOPIA_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_5_riz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_5_riz_0.npy.yml new file mode 100644 index 00000000..8a178de5 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2298.281099669739 +FOM_DETF_3x2: 53.76567697154078 +FOM_DETF_gg: 7.773754579146626 +FOM_DETF_ww: 0.4316655433348181 +FOM_gg: 720.1062955419526 +FOM_ww: 9.856857535764442 +SNR_3x2: 1388.1731192363034 +SNR_gg: 1387.6806491037519 +SNR_ww: 250.61094311064593 +counts: + 0: 1080788 + 1: 1080746 + 2: 1080747 + 3: 1080745 + 4: 1080747 +name: UTOPIA_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_7_griz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_7_griz_0.npy.yml new file mode 100644 index 00000000..7f503558 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4005.403525891953 +FOM_DETF_3x2: 70.07172697871258 +FOM_DETF_gg: 11.976585606473783 +FOM_DETF_ww: 0.5904960619703018 +FOM_gg: 1175.0585754526312 +FOM_ww: 16.184104652312143 +SNR_3x2: 1678.0536208464798 +SNR_gg: 1677.705136621265 +SNR_ww: 260.7090078156752 +counts: + 0: 772034 + 1: 771959 + 2: 771946 + 3: 771959 + 4: 771954 + 5: 771966 + 6: 771955 +name: UTOPIA_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_7_riz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_7_riz_0.npy.yml new file mode 100644 index 00000000..5fe3dddc --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4023.482739537973 +FOM_DETF_3x2: 65.34073252708895 +FOM_DETF_gg: 11.289527346966752 +FOM_DETF_ww: 0.47452418357183157 +FOM_gg: 1139.5431552914026 +FOM_ww: 11.578515960318898 +SNR_3x2: 1570.7606251364432 +SNR_gg: 1570.360807371014 +SNR_ww: 251.7527786650353 +counts: + 0: 772017 + 1: 771963 + 2: 771953 + 3: 771966 + 4: 771954 + 5: 771964 + 6: 771956 +name: UTOPIA_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_9_griz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_9_griz_0.npy.yml new file mode 100644 index 00000000..a8708cf6 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5637.632778494591 +FOM_DETF_3x2: 83.06146912287693 +FOM_DETF_gg: 16.008505072218178 +FOM_DETF_ww: 0.6094508317260755 +FOM_gg: 1632.6975254471638 +FOM_ww: 17.2401169957208 +SNR_3x2: 1865.6664168998252 +SNR_gg: 1865.3612640219355 +SNR_ww: 261.22020660097695 +counts: + 0: 600476 + 1: 600414 + 2: 600416 + 3: 600415 + 4: 600407 + 5: 600417 + 6: 600414 + 7: 600410 + 8: 600404 +name: UTOPIA_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/UTOPIA_9_riz_0.npy.yml b/paper/results/buzzard/metrics/UTOPIA_9_riz_0.npy.yml new file mode 100644 index 00000000..437917c1 --- /dev/null +++ b/paper/results/buzzard/metrics/UTOPIA_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5354.891691057512 +FOM_DETF_3x2: 73.58154813361911 +FOM_DETF_gg: 13.916854359923557 +FOM_DETF_ww: 0.48469880307489194 +FOM_gg: 1457.902932443817 +FOM_ww: 12.138148106272983 +SNR_3x2: 1659.3181005278634 +SNR_gg: 1658.8973539662416 +SNR_ww: 252.10969589080327 +counts: + 0: 600467 + 1: 600417 + 2: 600418 + 3: 600418 + 4: 600406 + 5: 600412 + 6: 600412 + 7: 600417 + 8: 600406 +name: UTOPIA_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_3_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_3_griz_0.npy.yml new file mode 100644 index 00000000..dea985e0 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1418.2306957216763 +FOM_DETF_3x2: 44.58902415487546 +FOM_DETF_gg: 5.92660603803811 +FOM_DETF_ww: 0.18973580560345757 +FOM_gg: 527.3570111494521 +FOM_ww: 3.585736090821744 +SNR_3x2: 1089.361313236147 +SNR_gg: 1087.2749842864598 +SNR_ww: 243.01609189359314 +counts: + 0: 312741 + 1: 349387 + 2: 3628659 + 3: 1112986 +name: ZotBin_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_3_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_3_riz_0.npy.yml new file mode 100644 index 00000000..9eff829b --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1205.9243360898433 +FOM_DETF_3x2: 30.847184588437294 +FOM_DETF_gg: 3.155671417693022 +FOM_DETF_ww: 0.29009218156558425 +FOM_gg: 264.0680446640231 +FOM_ww: 5.665620653223533 +SNR_3x2: 1068.8054876789877 +SNR_gg: 1066.77851301264 +SNR_ww: 234.9446460202985 +counts: + -1: 0 + 0: 1990467 + 1: 2530655 + 2: 882651 +name: ZotBin_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_5_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_5_griz_0.npy.yml new file mode 100644 index 00000000..5d923ec3 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2700.858535160341 +FOM_DETF_3x2: 66.16752814874738 +FOM_DETF_gg: 11.393560498010507 +FOM_DETF_ww: 0.4413800966833128 +FOM_gg: 1013.5408640844784 +FOM_ww: 9.950221613104576 +SNR_3x2: 1383.2551643668826 +SNR_gg: 1382.751256815912 +SNR_ww: 251.78309094712264 +counts: + 0: 312741 + 1: 287814 + 2: 1692328 + 3: 619122 + 4: 1086187 + 5: 1405581 +name: ZotBin_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_5_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_5_riz_0.npy.yml new file mode 100644 index 00000000..8fd0efe8 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2558.0101889318557 +FOM_DETF_3x2: 57.35453594257529 +FOM_DETF_gg: 8.712608835696395 +FOM_DETF_ww: 0.3851825641746029 +FOM_gg: 821.1249250432427 +FOM_ww: 8.841109372331017 +SNR_3x2: 1355.4953005932632 +SNR_gg: 1354.700876899804 +SNR_ww: 246.99588839610905 +counts: + -1: 0 + 0: 1577898 + 1: 1094714 + 2: 633900 + 3: 1720545 + 4: 376716 +name: ZotBin_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_7_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_7_griz_0.npy.yml new file mode 100644 index 00000000..f3a7be0b --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 4238.567873301148 +FOM_DETF_3x2: 79.03776878954349 +FOM_DETF_gg: 16.587789853145612 +FOM_DETF_ww: 0.47844895920992325 +FOM_gg: 1599.911594408509 +FOM_ww: 11.298504943320888 +SNR_3x2: 1623.1564476345743 +SNR_gg: 1622.7838447316046 +SNR_ww: 252.7036564140214 +counts: + 0: 312741 + 1: 479297 + 2: 1010332 + 3: 562454 + 4: 888889 + 5: 1324039 + 6: 634691 + 7: 191330 +name: ZotBin_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_7_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_7_riz_0.npy.yml new file mode 100644 index 00000000..ddd7f0ff --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 4628.421140308008 +FOM_DETF_3x2: 68.22654265870092 +FOM_DETF_gg: 12.362573582194832 +FOM_DETF_ww: 0.4287621919574318 +FOM_gg: 1272.270667142334 +FOM_ww: 10.796870457138347 +SNR_3x2: 1572.8019669319963 +SNR_gg: 1572.1518133025231 +SNR_ww: 248.14709150073307 +counts: + -1: 0 + 0: 1012007 + 1: 769062 + 2: 488319 + 3: 613818 + 4: 341910 + 5: 1094174 + 6: 1084483 +name: ZotBin_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_9_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_9_griz_0.npy.yml new file mode 100644 index 00000000..84e4c88a --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 6086.180053433889 +FOM_DETF_3x2: 89.39904873435675 +FOM_DETF_gg: 20.073856896433046 +FOM_DETF_ww: 0.4944430343700869 +FOM_gg: 2084.0200481977645 +FOM_ww: 12.413550298474986 +SNR_3x2: 1787.5861159770784 +SNR_gg: 1787.2459585417594 +SNR_ww: 253.73282176202852 +counts: + 0: 312741 + 1: 405416 + 2: 504731 + 3: 408981 + 4: 824996 + 5: 889448 + 6: 341531 + 7: 183594 + 8: 688333 + 9: 844002 +name: ZotBin_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotBin_9_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotBin_9_riz_0.npy.yml new file mode 100644 index 00000000..8a9e1dd9 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotBin_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 5448.111555372977 +FOM_DETF_3x2: 76.47224047784897 +FOM_DETF_gg: 15.123304340055107 +FOM_DETF_ww: 0.41273210290028334 +FOM_gg: 1584.9090476936897 +FOM_ww: 10.510540422837154 +SNR_3x2: 1674.911217014452 +SNR_gg: 1674.3204152513445 +SNR_ww: 247.89702847515125 +counts: + -1: 0 + 0: 338405 + 1: 688351 + 2: 466356 + 3: 437861 + 4: 334537 + 5: 982848 + 6: 718484 + 7: 810852 + 8: 626079 +name: ZotBin_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_3_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_3_griz_0.npy.yml new file mode 100644 index 00000000..2f7576d4 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1778.9589873526343 +FOM_DETF_3x2: 47.95195168184837 +FOM_DETF_gg: 6.079250118266411 +FOM_DETF_ww: 0.1998901541328419 +FOM_gg: 585.2586290217802 +FOM_ww: 4.265105211676955 +SNR_3x2: 1047.9594780243672 +SNR_gg: 1045.4571689187767 +SNR_ww: 242.95904904829476 +counts: + 0: 312741 + 1: 4068513 + 2: 143149 + 3: 879370 +name: ZotNet_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_3_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_3_riz_0.npy.yml new file mode 100644 index 00000000..87204595 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1798.436867404316 +FOM_DETF_3x2: 40.34564074223767 +FOM_DETF_gg: 4.795689424857469 +FOM_DETF_ww: 0.16366950679076078 +FOM_gg: 505.07147777783354 +FOM_ww: 3.7918422883806078 +SNR_3x2: 1000.3764027210021 +SNR_gg: 998.1643199955334 +SNR_ww: 238.2846140018279 +counts: + -1: 0 + 0: 4514178 + 1: 106017 + 2: 783578 +name: ZotNet_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_5_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_5_griz_0.npy.yml new file mode 100644 index 00000000..f3764151 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3818.716637450584 +FOM_DETF_3x2: 70.9539311945086 +FOM_DETF_gg: 11.934448554189304 +FOM_DETF_ww: 0.4836213786529356 +FOM_gg: 1179.948862031467 +FOM_ww: 11.267103372990531 +SNR_3x2: 1348.9494224053742 +SNR_gg: 1348.3882956331129 +SNR_ww: 254.37426606627855 +counts: + 0: 312741 + 1: 407291 + 2: 1903295 + 3: 192207 + 4: 945226 + 5: 1643013 +name: ZotNet_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_5_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_5_riz_0.npy.yml new file mode 100644 index 00000000..22581350 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 4237.280210073526 +FOM_DETF_3x2: 62.35675940322452 +FOM_DETF_gg: 10.46637387968732 +FOM_DETF_ww: 0.44213842456318986 +FOM_gg: 1114.4639287929251 +FOM_ww: 10.061096162682368 +SNR_3x2: 1312.921516458357 +SNR_gg: 1311.951460362948 +SNR_ww: 248.93258040996326 +counts: + -1: 0 + 0: 195581 + 1: 650152 + 2: 291753 + 3: 2086587 + 4: 2179700 +name: ZotNet_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_7_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_7_griz_0.npy.yml new file mode 100644 index 00000000..5052d0ed --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 5631.944253860404 +FOM_DETF_3x2: 86.58918594247027 +FOM_DETF_gg: 17.66334556901102 +FOM_DETF_ww: 0.5257944250049078 +FOM_gg: 1861.2926198458072 +FOM_ww: 13.129926888007088 +SNR_3x2: 1586.1619578685427 +SNR_gg: 1585.7765198346785 +SNR_ww: 256.1691103108794 +counts: + 0: 312741 + 1: 118694 + 2: 1067155 + 3: 1234768 + 4: 1477250 + 5: 467706 + 6: 220596 + 7: 504863 +name: ZotNet_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_7_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_7_riz_0.npy.yml new file mode 100644 index 00000000..b3f9996b --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 5945.43178595016 +FOM_DETF_3x2: 75.69590121132669 +FOM_DETF_gg: 13.742548621384337 +FOM_DETF_ww: 0.4594063044823109 +FOM_gg: 1489.367382602856 +FOM_ww: 11.480229429442877 +SNR_3x2: 1524.3554500115483 +SNR_gg: 1523.5405078425492 +SNR_ww: 251.0472878760778 +counts: + -1: 0 + 0: 1642677 + 1: 1896325 + 2: 367572 + 3: 642793 + 4: 478823 + 5: 159531 + 6: 216052 +name: ZotNet_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_9_griz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_9_griz_0.npy.yml new file mode 100644 index 00000000..7f1e8a29 --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 6686.815752141781 +FOM_DETF_3x2: 98.36695195355183 +FOM_DETF_gg: 24.95337533968545 +FOM_DETF_ww: 0.5314420162731204 +FOM_gg: 2672.4587098022207 +FOM_ww: 13.440374716849618 +SNR_3x2: 1727.5602456926154 +SNR_gg: 1727.1544680795018 +SNR_ww: 256.3232157098588 +counts: + 0: 312741 + 1: 388055 + 2: 23821 + 3: 1365289 + 4: 770661 + 5: 179166 + 6: 966193 + 7: 819620 + 8: 165780 + 9: 412447 +name: ZotNet_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/ZotNet_9_riz_0.npy.yml b/paper/results/buzzard/metrics/ZotNet_9_riz_0.npy.yml new file mode 100644 index 00000000..1a9ee7ad --- /dev/null +++ b/paper/results/buzzard/metrics/ZotNet_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 6755.936288434396 +FOM_DETF_3x2: 86.0306980278522 +FOM_DETF_gg: 17.397837948476834 +FOM_DETF_ww: 0.45904647914508 +FOM_gg: 1897.8782362979232 +FOM_ww: 11.701843282861649 +SNR_3x2: 1673.947446067781 +SNR_gg: 1673.3277047572658 +SNR_ww: 249.66011947722876 +counts: + -1: 0 + 0: 224895 + 1: 1348627 + 2: 94679 + 3: 495227 + 4: 404529 + 5: 673161 + 6: 969955 + 7: 318432 + 8: 874268 +name: ZotNet_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_3_griz_0.npy.yml b/paper/results/buzzard/metrics/funbins_3_griz_0.npy.yml new file mode 100644 index 00000000..0a43d3ea --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 942.8649770422325 +FOM_DETF_3x2: 25.956341724615097 +FOM_DETF_gg: 2.7804162652620508 +FOM_DETF_ww: 0.3719926991263984 +FOM_gg: 238.4709881345422 +FOM_ww: 7.249613060082509 +SNR_3x2: 982.9220928221322 +SNR_gg: 980.5330680341143 +SNR_ww: 250.3484888792175 +counts: + 0: 2449581 + 1: 2749356 + 2: 204836 +name: funbins_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_3_riz_0.npy.yml b/paper/results/buzzard/metrics/funbins_3_riz_0.npy.yml new file mode 100644 index 00000000..1d579787 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 880.3246755804993 +FOM_DETF_3x2: 23.197550261387708 +FOM_DETF_gg: 2.3061651735965234 +FOM_DETF_ww: 0.23969350558951583 +FOM_gg: 204.0873808341492 +FOM_ww: 4.39031841382396 +SNR_3x2: 973.8217334914794 +SNR_gg: 971.3619767259779 +SNR_ww: 244.3487825595807 +counts: + 0: 2514560 + 1: 2735915 + 2: 153298 +name: funbins_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_5_griz_0.npy.yml b/paper/results/buzzard/metrics/funbins_5_griz_0.npy.yml new file mode 100644 index 00000000..8e8d8992 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3108.816431030566 +FOM_DETF_3x2: 57.398681177557805 +FOM_DETF_gg: 8.700904796790358 +FOM_DETF_ww: 0.49804278113599215 +FOM_gg: 906.3166255079313 +FOM_ww: 13.139798005616809 +SNR_3x2: 1257.8764899646576 +SNR_gg: 1257.2795786964198 +SNR_ww: 257.08848781892584 +counts: + 0: 795184 + 1: 2425685 + 2: 1692893 + 3: 451570 + 4: 38441 +name: funbins_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_5_riz_0.npy.yml b/paper/results/buzzard/metrics/funbins_5_riz_0.npy.yml new file mode 100644 index 00000000..95108d32 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2749.9872028962996 +FOM_DETF_3x2: 50.51414740268454 +FOM_DETF_gg: 7.778775948626891 +FOM_DETF_ww: 0.36577325493640994 +FOM_gg: 799.2022083133065 +FOM_ww: 8.811415072545913 +SNR_3x2: 1238.664804087843 +SNR_gg: 1237.8754578709022 +SNR_ww: 249.07999144338723 +counts: + 0: 671868 + 1: 2581717 + 2: 1716894 + 3: 413889 + 4: 19405 +name: funbins_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_7_griz_0.npy.yml b/paper/results/buzzard/metrics/funbins_7_griz_0.npy.yml new file mode 100644 index 00000000..fe242d4f --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5001.312334827686 +FOM_DETF_3x2: 81.25940080039518 +FOM_DETF_gg: 14.31188347189399 +FOM_DETF_ww: 0.5913965011305751 +FOM_gg: 1494.1723288688718 +FOM_ww: 16.33551768310486 +SNR_3x2: 1454.2003580683886 +SNR_gg: 1453.7131755941011 +SNR_ww: 259.4505303232827 +counts: + 0: 419850 + 1: 1363620 + 2: 1756958 + 3: 1213266 + 4: 507965 + 5: 119966 + 6: 22148 +name: funbins_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_7_riz_0.npy.yml b/paper/results/buzzard/metrics/funbins_7_riz_0.npy.yml new file mode 100644 index 00000000..a45a6887 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3577.6678464942856 +FOM_DETF_3x2: 65.0325271563992 +FOM_DETF_gg: 10.342761487631844 +FOM_DETF_ww: 0.44491787993163934 +FOM_gg: 1045.5582203060503 +FOM_ww: 10.837103047089638 +SNR_3x2: 1403.0279616746484 +SNR_gg: 1402.4809583836814 +SNR_ww: 250.04799200190675 +counts: + 0: 403331 + 1: 1347399 + 2: 1854370 + 3: 1203401 + 4: 509488 + 5: 76429 + 6: 9355 +name: funbins_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_9_griz_0.npy.yml b/paper/results/buzzard/metrics/funbins_9_griz_0.npy.yml new file mode 100644 index 00000000..642cc774 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6017.600775520322 +FOM_DETF_3x2: 91.72770046069867 +FOM_DETF_gg: 18.135328421957094 +FOM_DETF_ww: 0.6076829862590802 +FOM_gg: 1913.4836355430598 +FOM_ww: 17.367444132897607 +SNR_3x2: 1588.6353400509468 +SNR_gg: 1588.2251730332723 +SNR_ww: 260.1296362977805 +counts: + 0: 246084 + 1: 814160 + 2: 1341740 + 3: 1307976 + 4: 966513 + 5: 528171 + 6: 138084 + 7: 44300 + 8: 16745 +name: funbins_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/funbins_9_riz_0.npy.yml b/paper/results/buzzard/metrics/funbins_9_riz_0.npy.yml new file mode 100644 index 00000000..08da5373 --- /dev/null +++ b/paper/results/buzzard/metrics/funbins_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 4542.373945710164 +FOM_DETF_3x2: 72.19265831228802 +FOM_DETF_gg: 12.383736761477156 +FOM_DETF_ww: 0.46425357076980767 +FOM_gg: 1297.3016963919024 +FOM_ww: 11.764151372010284 +SNR_3x2: 1413.0534096390893 +SNR_gg: 1412.4659422201248 +SNR_ww: 251.05420118022445 +counts: + 0: 197671 + 1: 654913 + 2: 1590525 + 3: 1348514 + 4: 939280 + 5: 526841 + 6: 116573 + 7: 22640 + 8: 6816 +name: funbins_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_3_griz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_3_griz_0.npy.yml new file mode 100644 index 00000000..42af5978 --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 688.6297094415137 +FOM_DETF_3x2: 27.19028233500332 +FOM_DETF_gg: 2.2534024201344263 +FOM_DETF_ww: 0.3839471230778324 +FOM_gg: 184.81202414495553 +FOM_ww: 6.852513017055915 +SNR_3x2: 1142.6097854481554 +SNR_gg: 1141.2053337857906 +SNR_ww: 255.5916060479316 +counts: + 0: 1805116 + 1: 1773415 + 2: 1825242 +name: mlpqna_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_3_riz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_3_riz_0.npy.yml new file mode 100644 index 00000000..fa43d829 --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 596.3421853193319 +FOM_DETF_3x2: 24.050316551218323 +FOM_DETF_gg: 1.9486572017666126 +FOM_DETF_ww: 0.2845049117336565 +FOM_gg: 153.25273468721454 +FOM_ww: 4.813147562319619 +SNR_3x2: 1119.3849080725372 +SNR_gg: 1117.5525717738344 +SNR_ww: 247.34490927364422 +counts: + 0: 1750281 + 1: 1894924 + 2: 1758568 +name: mlpqna_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_5_griz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_5_griz_0.npy.yml new file mode 100644 index 00000000..c15a5073 --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2119.907616054113 +FOM_DETF_3x2: 51.53201273642783 +FOM_DETF_gg: 6.989790538336181 +FOM_DETF_ww: 0.5467413324169571 +FOM_gg: 639.3924574742689 +FOM_ww: 13.82294986707964 +SNR_3x2: 1451.1186603897886 +SNR_gg: 1450.6169848395643 +SNR_ww: 259.59673369831734 +counts: + 0: 1064019 + 1: 1078653 + 2: 1084105 + 3: 1076525 + 4: 1100471 +name: mlpqna_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_5_riz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_5_riz_0.npy.yml new file mode 100644 index 00000000..180ba85e --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2283.9669990803905 +FOM_DETF_3x2: 54.15687215914103 +FOM_DETF_gg: 7.977633065646821 +FOM_DETF_ww: 0.45304506548814893 +FOM_gg: 732.2402474347003 +FOM_ww: 11.213105287956855 +SNR_3x2: 1423.244831421795 +SNR_gg: 1422.718411162397 +SNR_ww: 251.67377298615946 +counts: + 0: 676859 + 1: 1492982 + 2: 1099783 + 3: 1112800 + 4: 1021349 +name: mlpqna_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_7_griz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_7_griz_0.npy.yml new file mode 100644 index 00000000..b774f30d --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 3983.69624029562 +FOM_DETF_3x2: 70.44552206556959 +FOM_DETF_gg: 12.07379314354403 +FOM_DETF_ww: 0.6079859715936483 +FOM_gg: 1176.9622158649786 +FOM_ww: 17.290498642885414 +SNR_3x2: 1705.2424245490968 +SNR_gg: 1704.8943456421482 +SNR_ww: 260.95117977511387 +counts: + 0: 751015 + 1: 837699 + 2: 724681 + 3: 766219 + 4: 747006 + 5: 792217 + 6: 784936 +name: mlpqna_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_7_riz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_7_riz_0.npy.yml new file mode 100644 index 00000000..26923dea --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4026.8104616081478 +FOM_DETF_3x2: 65.74461022872215 +FOM_DETF_gg: 11.6011444497331 +FOM_DETF_ww: 0.49676128369211625 +FOM_gg: 1159.364477966871 +FOM_ww: 13.047202229181982 +SNR_3x2: 1647.006602302615 +SNR_gg: 1646.5608345040293 +SNR_ww: 252.70150292334344 +counts: + 0: 649054 + 1: 921132 + 2: 795397 + 3: 784818 + 4: 781562 + 5: 743636 + 6: 728174 +name: mlpqna_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_9_griz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_9_griz_0.npy.yml new file mode 100644 index 00000000..45f30ba6 --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5637.458210892482 +FOM_DETF_3x2: 83.40911901750526 +FOM_DETF_gg: 16.359440807724297 +FOM_DETF_ww: 0.6245498739278538 +FOM_gg: 1659.0178307251801 +FOM_ww: 18.310782512203254 +SNR_3x2: 1917.4295375696968 +SNR_gg: 1917.1222577538242 +SNR_ww: 261.3265735986727 +counts: + 0: 634196 + 1: 629443 + 2: 552012 + 3: 606961 + 4: 585671 + 5: 561238 + 6: 623779 + 7: 614568 + 8: 595905 +name: mlpqna_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/mlpqna_9_riz_0.npy.yml b/paper/results/buzzard/metrics/mlpqna_9_riz_0.npy.yml new file mode 100644 index 00000000..c82d6bf2 --- /dev/null +++ b/paper/results/buzzard/metrics/mlpqna_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 5300.092808136371 +FOM_DETF_3x2: 73.15667369243437 +FOM_DETF_gg: 14.29666143509733 +FOM_DETF_ww: 0.5056567348506277 +FOM_gg: 1479.5793423204798 +FOM_ww: 13.709573947411837 +SNR_3x2: 1757.5964846375089 +SNR_gg: 1757.0977596467162 +SNR_ww: 252.90010790703957 +counts: + 0: 617835 + 1: 297106 + 2: 781047 + 3: 782196 + 4: 597150 + 5: 567000 + 6: 619190 + 7: 601707 + 8: 540542 +name: mlpqna_9_riz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_3_griz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_3_griz_0.npy.yml new file mode 100644 index 00000000..21cfdd05 --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 660.8072167538896 +FOM_DETF_3x2: 22.12769768246166 +FOM_DETF_gg: 1.4040032138426644 +FOM_DETF_ww: 0.1404130150130297 +FOM_gg: 117.31564020085226 +FOM_ww: 2.3428299209119876 +SNR_3x2: 1157.796380607792 +SNR_gg: 1155.0240250707961 +SNR_ww: 239.23879059799646 +counts: + 0: 3419481 + 1: 1270674 + 2: 713618 +name: myCombinedClassifiers_3_griz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_3_riz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_3_riz_0.npy.yml new file mode 100644 index 00000000..0228883e --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 656.644078593635 +FOM_DETF_3x2: 18.43313767474521 +FOM_DETF_gg: 1.007137611155846 +FOM_DETF_ww: 0.07613427561822907 +FOM_gg: 86.93578736354544 +FOM_ww: 1.5316182885942307 +SNR_3x2: 1134.2017312568673 +SNR_gg: 1131.089653239406 +SNR_ww: 234.89032368728127 +counts: + 0: 3457601 + 1: 1240746 + 2: 705426 +name: myCombinedClassifiers_3_riz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_5_griz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_5_griz_0.npy.yml new file mode 100644 index 00000000..d0fbf495 --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2114.1208088156436 +FOM_DETF_3x2: 38.8474878890776 +FOM_DETF_gg: 4.454279879944288 +FOM_DETF_ww: 0.4089993971720411 +FOM_gg: 407.12853445182583 +FOM_ww: 9.450622109906972 +SNR_3x2: 1472.7142167704812 +SNR_gg: 1470.7349870056037 +SNR_ww: 245.5571678598379 +counts: + 0: 1907807 + 1: 1325638 + 2: 732553 + 3: 791999 + 4: 645776 +name: myCombinedClassifiers_5_griz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_5_riz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_5_riz_0.npy.yml new file mode 100644 index 00000000..6de4d7fb --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1861.3714793924892 +FOM_DETF_3x2: 32.96342098012568 +FOM_DETF_gg: 3.7813124776325058 +FOM_DETF_ww: 0.30074536778894667 +FOM_gg: 349.3767981588086 +FOM_ww: 6.554357681018047 +SNR_3x2: 1412.5567881352101 +SNR_gg: 1410.3121362460772 +SNR_ww: 240.43863213962558 +counts: + 0: 1912014 + 1: 1321865 + 2: 786852 + 3: 768281 + 4: 614761 +name: myCombinedClassifiers_5_riz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_7_griz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_7_griz_0.npy.yml new file mode 100644 index 00000000..23aa9982 --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4980.705976981609 +FOM_DETF_3x2: 68.34035209506692 +FOM_DETF_gg: 13.101399762408146 +FOM_DETF_ww: 0.5296886371441888 +FOM_gg: 1325.9263804734055 +FOM_ww: 14.881062957247618 +SNR_3x2: 1675.1041365569995 +SNR_gg: 1674.2229961439043 +SNR_ww: 247.33878264079144 +counts: + 0: 771873 + 1: 1327053 + 2: 729439 + 3: 796265 + 4: 656861 + 5: 887286 + 6: 234996 +name: myCombinedClassifiers_7_griz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_7_riz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_7_riz_0.npy.yml new file mode 100644 index 00000000..73036dc6 --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4377.365173025507 +FOM_DETF_3x2: 56.12186551880202 +FOM_DETF_gg: 9.579222398340038 +FOM_DETF_ww: 0.42826072221962375 +FOM_gg: 969.6279490271357 +FOM_ww: 11.004513764580242 +SNR_3x2: 1588.7379321855212 +SNR_gg: 1587.4101587555688 +SNR_ww: 242.92397259543276 +counts: + 0: 631583 + 1: 1397086 + 2: 767340 + 3: 796364 + 4: 636802 + 5: 927303 + 6: 247295 +name: myCombinedClassifiers_7_riz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_9_griz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_9_griz_0.npy.yml new file mode 100644 index 00000000..f1093076 --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7736.890745125319 +FOM_DETF_3x2: 97.19977791939152 +FOM_DETF_gg: 21.065670439139694 +FOM_DETF_ww: 0.6051534042500726 +FOM_gg: 2254.613591328437 +FOM_ww: 17.647220022445325 +SNR_3x2: 1780.113098448855 +SNR_gg: 1779.6977422080122 +SNR_ww: 259.1315074887553 +counts: + 0: 283263 + 1: 1325422 + 2: 754141 + 3: 783128 + 4: 660310 + 5: 894472 + 6: 263894 + 7: 330821 + 8: 108322 +name: myCombinedClassifiers_9_griz_0.npy diff --git a/paper/results/buzzard/metrics/myCombinedClassifiers_9_riz_0.npy.yml b/paper/results/buzzard/metrics/myCombinedClassifiers_9_riz_0.npy.yml new file mode 100644 index 00000000..cbcf03ab --- /dev/null +++ b/paper/results/buzzard/metrics/myCombinedClassifiers_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6796.174903875034 +FOM_DETF_3x2: 85.30892279952194 +FOM_DETF_gg: 16.30545129642965 +FOM_DETF_ww: 0.49331671173907604 +FOM_gg: 1748.193879904724 +FOM_ww: 13.128661763576147 +SNR_3x2: 1682.6126355749939 +SNR_gg: 1682.040674065803 +SNR_ww: 252.34725463905295 +counts: + 0: 170377 + 1: 1422533 + 2: 797222 + 3: 780980 + 4: 659302 + 5: 921696 + 6: 267524 + 7: 327407 + 8: 56732 +name: myCombinedClassifiers_9_riz_0.npy diff --git a/paper/results/colour_colour.pdf b/paper/results/colour_colour.pdf new file mode 100644 index 00000000..e335332d Binary files /dev/null and b/paper/results/colour_colour.pdf differ diff --git a/paper/results/cosmodc2.csv b/paper/results/cosmodc2.csv new file mode 100644 index 00000000..3413d14f --- /dev/null +++ b/paper/results/cosmodc2.csv @@ -0,0 +1,185 @@ +method,bands,bins,SNR_ww,SNR_gg,SNR_3x2,FOM_ww,FOM_gg,FOM_3x2,FOM_DETF_ww,FOM_DETF_gg,FOM_DETF_3x2 +Autokeras_LSTM,riz,3,335.28761154103955,1059.737600607448,1064.0220058508075,13.832026348035729,327.030579311031,1564.7076210263365,0.43083400486807666,3.382441521455935,31.131292822414355 +Autokeras_LSTM,riz,5,351.7957290229856,1293.1925985090752,1295.2768771177773,30.206930636689822,1011.6002385026816,3336.588527411682,0.7652653256564252,10.575429267960718,74.85112160530004 +Autokeras_LSTM,riz,7,352.35875305412077,1377.5791714096058,1379.6751898952932,31.063987548305338,1525.7018812850745,5842.372301345694,0.8085345964399882,14.57410498353475,103.37514995898016 +Autokeras_LSTM,riz,9,nan,nan,nan,nan,nan,nan,nan,nan,nan +Autokeras_LSTM,griz,3,358.7241999848635,1093.4560913213957,1097.151094848299,26.42872310266265,345.38401394390854,1399.1674605620667,0.7445660781830541,4.010953584822887,44.08762175495988 +Autokeras_LSTM,griz,5,350.12258832258544,1242.1989967707711,1243.8761251812427,7.690263355719723,706.884849808079,2977.1718940204014,0.3122120714015718,6.866370936903458,67.54917628625026 +Autokeras_LSTM,griz,7,363.85931274570754,1601.8023513702224,1603.1353832698949,42.98564002111247,1906.9898757786166,7250.069185253118,1.02623214697331,18.2450278186623,122.20932442007197 +Autokeras_LSTM,griz,9,364.3053825503094,1659.1230311795132,1660.7291944885872,44.58210311453985,1602.3652751659,5864.722279080499,1.046495827950002,15.841432029031024,98.41676675663442 +CNN,riz,3,346.7836811158817,888.2878670879403,896.8255387296932,7.013585802178403,72.07129595642533,883.827646266981,0.23670108767281645,0.7683802840006099,27.077352044411384 +CNN,riz,5,353.9221372149748,1216.396864803725,1218.7298928184484,29.764279843687454,631.9021645463207,2239.9493342107717,0.8134601024705869,6.559269801133083,50.80941555312656 +CNN,riz,7,356.06503477473467,1454.5739224014067,1456.3055137642964,37.51481874138734,1183.7576616168294,4189.830978201063,0.9192826807140895,11.81099850491642,76.66260947556226 +CNN,riz,9,354.4648112048529,1628.8702305223937,1630.5446497580122,38.05625766144668,1808.9291139039449,7000.389473431522,0.9187762844631431,16.90839729090727,103.25010286909549 +CNN,griz,3,352.459840079368,907.5923525607382,916.2547591589497,6.247895041323896,134.52520874880145,780.8222559585103,0.23978109461452182,1.550204945768614,30.542590145384686 +CNN,griz,5,362.5687457048434,1247.5898262641517,1249.8882560327322,35.79378358905801,613.2128771149125,1995.2219199934393,0.937188906151872,7.0967601747359295,57.69534839027539 +CNN,griz,7,365.0493054084947,1511.2456303849026,1512.6619013631584,45.008395942215095,1373.8631020108471,4825.802463854723,1.0455141038900628,13.978089512897359,95.43073270312803 +CNN,griz,9,366.0322625888134,1731.0861824896444,1732.3046117417757,48.66013654718977,2074.5554481871363,7725.595010769273,1.1060115735724414,19.82812599262936,122.36438007397716 +ComplexSOM,riz,3,346.8009399107458,1078.6048822310017,1081.2421935889647,17.341153855967967,352.6017202930272,1097.9665695949882,0.5631125114239804,4.1276718895309745,37.98944026271753 +ComplexSOM,riz,5,347.72982553212364,1309.0265453256063,1311.209022744658,19.69606448714674,746.7365530083092,3063.0309303373583,0.5884916493268175,7.276141862101404,52.11014174680333 +ComplexSOM,riz,7,349.290523024362,1440.2092590301806,1442.294976915915,25.00836681417762,1499.7356883991865,6073.258065189834,0.6734029543883069,13.972479456697531,94.36626993664555 +ComplexSOM,riz,9,349.53012564975836,1538.0654760828534,1540.0314793157102,25.39449434842955,1830.672944352116,7919.584982963892,0.678120737540818,16.236057947985696,101.60722111995368 +ComplexSOM,griz,3,342.65344866874227,1070.439204237324,1072.745352228054,6.45123558816174,273.74526114450623,898.315225267707,0.3369734502346115,3.179261811084729,34.85518348031177 +ComplexSOM,griz,5,345.66143214911995,1140.070206925085,1142.4160550873971,12.233687768297264,447.55276995148995,1848.4151730014923,0.4953517798115553,4.5986466845207525,45.0310708016055 +ComplexSOM,griz,7,347.62977201673124,1470.2401900875445,1471.8624707063789,19.26825323372608,1134.7220788206594,4687.833867190513,0.6075925981140685,11.264976591587137,91.622236939346 +ComplexSOM,griz,9,348.0951468393755,1556.530847612376,1558.108908617058,21.48806188268375,1483.781154387205,6603.130725035127,0.6457674094758314,13.868710365865523,100.30530527209855 +ENSEMBLE1,riz,3,355.7962476383661,1328.1582511864756,1330.1112830171858,35.98162919261638,877.996848027819,2921.791336016048,0.9035868402156987,9.391945913093748,65.61127234203572 +ENSEMBLE1,riz,5,355.79519762502525,1328.2748791518031,1330.2275377653532,35.976219535815716,878.52248730165,2924.2579265665645,0.9035011112273215,9.39406013535617,65.62723003186325 +ENSEMBLE1,riz,7,356.04058377517003,1556.8120188207427,1558.4231298937011,38.630910048115766,1582.7591780166729,5791.169855349383,0.9259815060711174,15.222200452052968,94.81634591270999 +ENSEMBLE1,riz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +ENSEMBLE1,griz,3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +ENSEMBLE1,griz,5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +ENSEMBLE1,griz,7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +ENSEMBLE1,griz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +funbins,riz,3,347.52708735337967,980.0824273490707,983.5267808785244,23.25721706977677,339.04881718400156,1186.7645569679232,0.7025124393791676,4.258755026202902,36.83851704519878 +funbins,riz,5,352.76064624404785,1189.6326276893328,1191.9579274218972,31.628172029767413,1236.522084915849,4158.541883441358,0.8074724787689321,11.766825336232264,82.51043238641404 +funbins,riz,7,354.8506021767708,1342.2269108742457,1344.3922086423017,36.48698924581893,2084.4119768723895,7571.29386500077,0.9142207667584983,18.54635534656465,122.05054704752281 +funbins,riz,9,355.69049454015754,1497.167437821506,1499.1609264174865,39.756251204979414,3068.218590745035,10959.129302029305,0.9474562642378487,25.628283017504543,141.75743561049592 +funbins,griz,3,358.77328963003663,1017.9792279372244,1021.300723041234,31.177510828916454,426.09691484499126,1622.1462846753373,0.8951554786746012,4.61556615779079,42.134943042284696 +funbins,griz,5,364.6117957637797,1265.5272551231644,1267.463302305958,42.99234194224257,1530.6032005733946,5125.153356596402,1.0343138349246077,14.44819765817397,100.4281394629387 +funbins,griz,7,367.01533953786975,1473.6679609303662,1475.2521428250795,50.37456310645805,2564.571692653925,8778.30392371365,1.1684043726293076,23.014845339786227,142.4839680301932 +funbins,griz,9,367.860054490669,1658.345594609368,1659.7244202838503,54.03473382509035,3751.4107225631483,12668.156323260662,1.2071481810529747,31.37220792871702,167.20849172232766 +GPzBinning,riz,3,346.55385504137433,882.3979527666136,892.1845177339211,6.897230268159615,33.72032234002467,775.8304544039968,0.22425954461638536,0.364680620678581,26.23162563078974 +GPzBinning,riz,5,354.75272881788686,1197.9553488559704,1200.1770431593652,23.922424800914,623.9204935986297,2226.2704595413707,0.6990187878102238,6.300845956670509,49.66880093060949 +GPzBinning,riz,7,357.3167450986562,1369.3350832326544,1371.2673451014937,33.12222340229107,1140.9506290807442,4131.228243727043,0.8359702231033539,11.449916265843317,80.83787786011987 +GPzBinning,riz,9,358.19126490449844,1505.421675131169,1507.3653895084194,35.10769901743064,1825.8234202579654,7197.583183401822,0.8698030325042723,16.92584236877476,111.73258054821996 +GPzBinning,griz,3,352.79358145703964,903.6750438496626,911.0424971500795,6.470135799347447,32.52076858316576,667.7623360380521,0.23947200284509898,0.3796705384904976,27.839974016047353 +GPzBinning,griz,5,363.01545007817066,1250.921696206405,1253.0985029971234,35.981304668320696,575.2318476018206,2050.1233672195685,0.9359298532153846,6.481757570920146,55.25181192565883 +GPzBinning,griz,7,365.95284733436864,1497.7551389515027,1499.2201493608043,45.96354330054218,1268.358210140685,4435.180994267844,1.0700581363331094,12.972203104409461,87.24106244092643 +GPzBinning,griz,9,366.4825472897873,1700.6990475732387,1701.9459885529386,47.83497925629094,2129.807999606044,8064.683726301463,1.098969722242834,20.209019367872543,126.9373322154741 +IBandOnly,riz,3,327.6171490895921,766.7835234259547,782.3407446434188,0.7788954780369381,216.17668611868268,753.4166733139978,0.04837985563193023,2.565248453487733,38.043115793553255 +IBandOnly,riz,5,329.23829181161096,815.630045734318,828.7621212796174,2.573638302734779,410.7863911486554,1237.9817077177868,0.12961609245134365,4.753923950514638,49.96394082799005 +IBandOnly,riz,7,329.9141433202445,839.6612197967921,851.9253507200686,3.1940429811499143,481.2231146869029,1423.7710852898472,0.14974995108685615,5.496749789284911,54.397106556654634 +IBandOnly,riz,9,330.33510075887835,854.7034973511486,866.5662584834199,3.59910631198839,583.0526695665787,1829.9463110573517,0.16124319859839736,6.1067246632804615,57.26816294399211 +IBandOnly,griz,3,327.6171490895921,766.7835234259547,782.3407446434188,0.7788954780369381,216.17668611868268,753.4166733139978,0.04837985563193023,2.565248453487733,38.043115793553255 +IBandOnly,griz,5,329.23829181161096,815.630045734318,828.7621212796174,2.573638302734779,410.7863911486554,1237.9817077177868,0.12961609245134365,4.753923950514638,49.96394082799005 +IBandOnly,griz,7,329.9141433202445,839.6612197967921,851.9253507200686,3.1940429811499143,481.2231146869029,1423.7710852898472,0.14974995108685615,5.496749789284911,54.397106556654634 +IBandOnly,griz,9,330.33510075887835,854.7034973511486,866.5662584834199,3.59910631198839,583.0526695665787,1829.9463110573517,0.16124319859839736,6.1067246632804615,57.26816294399211 +JaxCNN,riz,3,331.25805639529744,964.6658380896102,970.1900651284875,9.303522316037979,254.63847660239705,1000.8626545169931,0.3595118457634627,3.8474859874759146,59.945488260086876 +JaxCNN,riz,5,346.7362194976647,1218.1354469695877,1221.1237949906804,27.918635327615483,1162.7139791582026,3970.2421566080625,0.7200875538076205,12.6597079281493,101.93543153611367 +JaxCNN,riz,7,347.83674523008693,1282.8755467476935,1285.5725914127208,29.0453530497331,1366.8472525680709,4934.924877269086,0.7501069256563266,13.847811030125502,105.21794204190276 +JaxCNN,riz,9,nan,nan,nan,nan,nan,nan,nan,nan,nan +JaxCNN,griz,3,348.52167747328554,1077.2945203509041,1079.4307996884202,3.2680752985577963,316.6888438293315,994.0803518273876,0.20725268121989454,4.783626845071944,79.74382537730521 +JaxCNN,griz,5,362.989496701993,1331.257594046213,1332.9570771368303,37.96861672016124,1355.9129806156498,4316.412812776005,0.9899778637548478,15.752812985199357,125.19990696203908 +JaxCNN,griz,7,364.5286268776154,1554.9745529388629,1556.3768638109918,42.69165890069376,2073.5213509287087,6097.005714896129,1.055757620763155,22.58203909978717,149.98966177643015 +JaxCNN,griz,9,nan,nan,nan,nan,nan,nan,nan,nan,nan +JaxResNet,riz,3,341.0295814400317,1008.8299588642768,1011.6782360420391,2.0648980807369504,291.8194610739686,858.0501604440103,0.14171391635027894,4.586634466577423,73.72812832168258 +JaxResNet,riz,5,350.7351827704152,1239.3247493569327,1241.7303096234714,30.76474977486003,1224.9131307711682,3994.4756006397242,0.8162768393926229,13.945574597737878,111.12601027897314 +JaxResNet,riz,7,354.7270690550118,1385.9113573214356,1388.1658817718458,37.8697338450175,2105.623366310613,7352.8388199297715,0.9241192976294903,20.02035357114989,131.57901477364894 +JaxResNet,riz,9,nan,nan,nan,nan,nan,nan,nan,nan,nan +JaxResNet,griz,3,348.96060093978673,1073.4357095693633,1075.492120361787,2.215709239835949,324.645067019585,950.4586372510038,0.14721831043765105,5.058002522072767,82.21550422928046 +JaxResNet,griz,5,359.37358741118595,1289.459716086826,1291.2002785151872,31.0912593860561,1204.3053514819844,3497.3484574145327,0.876043814306874,15.209626370461086,126.0319329962518 +JaxResNet,griz,7,nan,nan,nan,nan,nan,nan,nan,nan,nan +JaxResNet,griz,9,365.4635709529704,1608.2180406069647,1609.6025456287448,44.71929248599692,2408.9626642350995,6438.715053444325,1.096967937625004,26.344284316258953,161.49734996256177 +LGBM,riz,3,346.69057725113936,888.124489664498,896.6159488655553,6.9697484711642925,71.400976241773,868.6080988981497,0.23604896640947848,0.7652902133508288,27.041843266908174 +LGBM,riz,5,354.2272922795131,1223.2529863431212,1225.553577288562,30.067554023554003,640.757773648028,2280.6641941727676,0.8179307335802147,6.604523348237801,50.80383188221854 +LGBM,riz,7,356.18263365675443,1461.7715795312258,1463.4680696739713,37.517408718785546,1212.3949015866267,4336.21119960023,0.9168767601788791,12.030004133710404,78.78104588436605 +LGBM,riz,9,356.25520511775005,1638.9042206778472,1640.503438922307,39.55168171148294,1896.2234552893335,7215.118645526565,0.9433111004661285,17.785373886588133,108.23831223412833 +LGBM,griz,3,352.5222987704111,907.7511651040228,916.4891094264094,6.30561273064868,135.14160561114605,781.0213111110246,0.24021090062749093,1.5546598048806313,30.294191262282286 +LGBM,griz,5,362.77653972103735,1250.718387170753,1253.0427641134474,36.291635827311424,620.3965546997589,2038.551230786447,0.9418337617163564,7.091871559085813,57.44233011936033 +LGBM,griz,7,365.235047238233,1513.827775130199,1515.256246921752,45.44814316547565,1337.6755324134626,4684.7292409432575,1.054345328444117,13.652424262219494,92.86633846457859 +LGBM,griz,9,365.8331576216186,1734.3569754802554,1735.5645201713423,48.606999714805895,2121.9678978547577,7933.387990480731,1.102615103399664,20.238251742408067,125.1795591947116 +LSTM,riz,3,346.42032366520294,888.3943698439764,896.9028679274271,6.892108032446374,71.85515719367399,864.9930251839221,0.2328095051067616,0.7696581596755236,26.738508037727346 +LSTM,riz,5,353.4608678028491,1219.0267955090146,1221.2936085149406,29.33071758106121,643.4871261214896,2244.0073631588425,0.8103392599118507,6.67114570629246,51.065305344244706 +LSTM,riz,7,355.26447585745024,1452.7691713386575,1454.4987207719528,36.755475015823244,1232.3309628731713,4451.2979273668325,0.8959122184155172,12.239742608533296,81.44671122611028 +LSTM,riz,9,354.2444733513308,1629.1381850171906,1630.7727913961376,38.156617936875584,1817.9683101314038,7008.341204693927,0.9195074158807738,17.012483508460278,103.62726009872189 +LSTM,griz,3,352.4976554460017,907.4056232132117,916.1766947230307,6.366585498923861,135.90505191230275,782.9870645525723,0.24125623490714893,1.5612055205213364,30.23988855478629 +LSTM,griz,5,362.323161447533,1246.7165075132507,1249.0188354757565,35.51246553976626,613.0448253308937,2004.3753485232082,0.9316970004217914,7.052823863156465,57.09795167693938 +LSTM,griz,7,365.014707898887,1510.9539944751089,1512.3686036747838,44.645288911472825,1367.7844561740974,4829.2122419240295,1.0420039110141872,13.92036474226948,95.85314113476021 +LSTM,griz,9,366.0605272012479,1729.2558760308934,1730.4676831450604,48.87719618339573,2125.535553787216,7997.269985727562,1.1087208206254098,20.28457336074723,126.87329936127603 +mlpqna,riz,3,351.6096845584306,1082.568811184235,1085.6096612875133,23.076616660674407,317.38963637468896,1266.2587009894082,0.6729074566662171,3.669440733753176,39.25092886627735 +mlpqna,riz,5,355.4382308189232,1318.8927006531273,1320.8978256339035,34.98832675167727,881.4286490352645,2929.992790259516,0.884841246154434,9.347253636687384,64.69101925321965 +mlpqna,riz,7,355.0834579638029,1546.7341809083107,1548.3860994375316,37.319230995745876,1559.8949609105218,5761.030214165859,0.9058441461120427,14.937629092983762,93.23191012566214 +mlpqna,riz,9,355.050356496025,1674.843959788713,1676.5277380165717,38.019218325618695,2177.1190019431065,8624.5466294103,0.9200620298072955,20.025170823917534,121.80136293404605 +mlpqna,griz,3,361.041488962657,1096.6311171795637,1099.782728995069,29.98940957684074,295.2649005524219,1253.1384102965594,0.8242000960798244,3.566524084524439,42.802322159828556 +mlpqna,griz,5,365.71576118600683,1383.3998148903129,1385.1071121159555,43.909463552478236,926.5767613047619,3140.7182589106696,1.050550156018056,9.975192206355837,72.22726869891012 +mlpqna,griz,7,366.9697233609333,1628.8938538726638,1630.2018521669763,48.929408775688934,1730.6614520005903,6348.070715970817,1.1121329023545958,16.864402937514477,108.99359229568006 +mlpqna,griz,9,367.53544152706297,1809.210898037558,1810.3758557177239,51.36704816212134,2388.6549521470247,9076.152177245565,1.1534437572937544,22.32340983886288,133.69695743812343 +myCombinedClassifiers,riz,3,337.235802960027,1017.4122875720584,1021.7046501113674,1.2176405726092263,166.1615457247637,610.1875175596964,0.07575416065619343,2.05091777487473,35.316571148062785 +myCombinedClassifiers,riz,5,343.26892029273165,1316.1951368381533,1318.6154497805962,8.404724485270576,538.4606118918342,2159.4062408865843,0.4208508647248207,5.741497758049762,60.46463932123297 +myCombinedClassifiers,riz,7,349.31452772546817,1555.1747706716044,1557.406613516556,28.775548795540498,1102.6050090949998,4584.132117114498,0.7799395347785004,11.040439520788283,83.4843530203683 +myCombinedClassifiers,riz,9,351.56316002760957,1670.146355446712,1672.1893061645603,39.081129872309155,2036.329087036212,8038.72664975656,0.9358086733478708,19.347572560487418,120.35164123675976 +myCombinedClassifiers,griz,3,340.66222740687726,1103.2885796359062,1108.8175448076188,1.6779418402220367,173.39763586322914,685.2522574438113,0.11998587518179885,2.172102536288314,39.37014116470923 +myCombinedClassifiers,griz,5,349.19061609199326,1427.9499051613468,1431.2907455518791,10.872943816762197,511.62533265403727,2262.8878383268243,0.49745499714130215,5.5833697249431316,63.92124171327897 +myCombinedClassifiers,griz,7,355.9827989110979,1671.5023588538331,1674.3201456198544,37.24887408821785,1102.6031848474875,4801.217695295737,0.949129981554946,11.400254193193202,93.11091015094796 +myCombinedClassifiers,griz,9,358.76357676655635,1837.7875792013558,1839.3893705339576,49.2666465388137,2601.7282741760196,9386.774640616737,1.1177165813235015,25.010252121343893,148.89917969892196 +NeuralNetwork_1,riz,3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,riz,5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,riz,7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,riz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,griz,3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,griz,5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,griz,7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_1,griz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,riz,3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,riz,5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,riz,7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,riz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,griz,3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,griz,5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,griz,7,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +NeuralNetwork_2,griz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +PCACluster,riz,3,327.70306688231545,908.2232657302332,918.2219043551642,7.760726876362524,241.27792509774542,1322.318337870831,0.2486376071488919,2.685981753650042,29.487008678857723 +PCACluster,riz,5,329.09682142741906,1063.1063251105923,1070.7702518817935,11.33788273653632,1014.9043000511781,4473.330616875774,0.33010308904824676,9.201123288122291,68.10382688059694 +PCACluster,riz,7,331.12213537353773,1174.5012920951817,1181.3106778653173,14.218454374455387,1293.5598381583466,5880.107664494,0.3836597128652315,11.458295223653025,75.75875496922538 +PCACluster,riz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +PCACluster,griz,3,339.4832093290342,994.3925273495998,1004.5831120931489,12.592422510216299,310.9887619929038,2002.5794158710826,0.37584021442416093,3.6072677627512495,50.096418642457486 +PCACluster,griz,5,334.1330816093867,1036.919612999566,1046.9659909329423,11.9772017457758,1117.1631632982426,4754.210825260373,0.3421830178594021,9.749896514157406,72.67125818956174 +PCACluster,griz,7,341.20397920144745,1167.9227165761324,1174.7382688881555,21.61189035885175,1573.8854941906536,6602.837324463316,0.5862108987862207,13.277738121824806,90.78744201851653 +PCACluster,griz,9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +Random,riz,3,323.4641059260156,646.3194238618072,670.0523684816854,0.012262644924460466,0.5094935538980825,17.38211945736259,0.00011502619255783291,0.003025148257392036,1.2273762185009003 +Random,riz,5,323.4641135396003,646.3194673113373,670.0532142125127,0.012541458839056076,0.5320269249765752,17.463609515979243,0.00011772567363150415,0.0031757509379315195,1.2316678240363015 +Random,riz,7,323.4641351072976,646.3194754538466,670.0524195405751,0.012567782610347055,0.515012727357723,17.48005516323442,0.00011819762592985551,0.0030578748721889785,1.232505061638897 +Random,riz,9,323.4641393885784,646.3195134112743,670.0532850593743,0.012789452511013035,0.5627274898853618,17.684856970567072,0.00012098739453132185,0.0033601745328092087,1.2467497540860855 +Random,griz,3,323.4641059260156,646.3194238618072,670.0523684816854,0.012262644924460466,0.5094935538980825,17.38211945736259,0.00011502619255783291,0.003025148257392036,1.2273762185009003 +Random,griz,5,323.4641135396003,646.3194673113373,670.0532142125127,0.012541458839056076,0.5320269249765752,17.463609515979243,0.00011772567363150415,0.0031757509379315195,1.2316678240363015 +Random,griz,7,323.4641351072976,646.3194754538466,670.0524195405751,0.012567782610347055,0.515012727357723,17.48005516323442,0.00011819762592985551,0.0030578748721889785,1.232505061638897 +Random,griz,9,323.4641393885784,646.3195134112743,670.0532850593743,0.012789452511013035,0.5627274898853618,17.684856970567072,0.00012098739453132185,0.0033601745328092087,1.2467497540860855 +RandomForest,riz,3,351.716100042212,1081.7773013774304,1084.7445631779906,23.545311161185303,317.2712253573101,1267.4873868011157,0.6764356140179525,3.670819675131418,39.54198203161832 +RandomForest,riz,5,355.0115128068027,1332.7074871732582,1334.6366734934952,34.90057067993053,886.2576489778206,2976.1297196695186,0.8789321670271133,9.374954920286966,65.15538586550949 +RandomForest,riz,7,355.38355759136465,1548.7695503722487,1550.428433152427,38.395685814579956,1540.2273348170925,5690.59677226757,0.9184594941242474,14.865382230674243,93.2404913508094 +RandomForest,riz,9,355.5603315288442,1687.507342821898,1689.178138824957,39.64295895424662,2156.031420859195,8447.672948621901,0.9419741840649622,19.86152390294322,118.54408798500214 +RandomForest,griz,3,361.11871295813387,1096.8914390457676,1100.0514397011218,30.034141223477945,294.30403131229576,1254.5825558193178,0.8248640907590056,3.5584511540895547,42.96961527898029 +RandomForest,griz,5,365.84545990307083,1386.4553703165234,1388.1552171967778,44.476601822211315,929.8596384478099,3146.5919980785156,1.0567977221554474,10.02801501806916,72.75629972313816 +RandomForest,griz,7,367.3526572730199,1631.788857605819,1633.100178154371,50.09087298960714,1739.2500711616453,6370.504402346514,1.127904510953079,16.99438497634763,110.12387227202122 +RandomForest,griz,9,368.11080289333955,1823.92183196478,1825.0834803357454,53.2186295741161,2448.582206966842,9265.38359211895,1.1771077984318403,22.909242606029498,136.45683372012363 +SimpleSOM,riz,3,352.4263346730564,1063.85821170374,1067.3304762817327,20.48104842065634,298.5548675603706,1375.616225295243,0.5783968668580376,3.3493583986855286,39.50607312429524 +SimpleSOM,riz,5,356.6400655907914,1307.273102151879,1309.3449702466485,30.69278509065315,821.6691947501487,3061.5591503840164,0.7913065060300012,8.279930450159302,59.87675200731557 +SimpleSOM,riz,7,358.1665164962819,1480.2539210367943,1481.9620186474692,35.072492799497276,1312.4970116056907,5017.488766705653,0.8597684543538224,12.299469391298913,77.86077764981205 +SimpleSOM,riz,9,358.73151630996557,1572.8162844891478,1574.4463732161862,36.748078662069894,1785.8436203601475,7244.535654547413,0.883228762511691,16.04008649295311,98.46805953109714 +SimpleSOM,griz,3,360.46958181068595,1098.580300311551,1102.1009237967764,28.787409569292276,279.5995917250083,1313.446048669491,0.7722388307537368,3.3126896364702656,42.24554490600188 +SimpleSOM,griz,5,366.14163072884696,1378.053512332349,1379.7640547528192,45.40715122637216,959.1825085288665,3250.2637077523364,1.0676015759173587,10.222249739885017,73.21695022661136 +SimpleSOM,griz,7,367.50792817777153,1600.9221502752212,1602.278319019214,50.662799978766564,1746.288371598234,6417.485961841575,1.1380366489036047,16.796664130848868,108.01556552814354 +SimpleSOM,griz,9,368.3857250803792,1788.5151245195427,1789.7232406644428,53.836224343516726,2446.687766078121,9279.755894101538,1.186736866696709,22.64079951223419,134.8081719821798 +TCN,riz,3,351.61610682654367,1088.663250807679,1091.6778837184272,23.58914546275782,355.8152225395837,1371.0105036153616,0.6942034548610132,3.9816699222955094,39.955411084369054 +TCN,riz,5,355.65654378532196,1322.8575400834632,1324.853964029417,36.007381239134695,886.891911346354,2986.618712015713,0.9044209940219243,9.378870123042578,65.26023238693382 +TCN,riz,7,355.5177961424233,1552.187358017296,1553.8490480590524,38.0054050434732,1522.428944212189,5592.529931720378,0.9181869758954252,14.65156242600233,90.92282087521016 +TCN,riz,9,355.3085244854449,1693.0786060449775,1694.6846371880001,38.70417469998384,2055.395293494349,7955.546801692584,0.9310820263810802,18.935116679351303,110.54348787401095 +TCN,griz,3,359.5358503116753,1095.396022827042,1098.915692220499,27.606801963537166,348.81225458931067,1325.8709320461853,0.7881028303560117,4.126170559178718,44.145300449897725 +TCN,griz,5,363.9371096305026,1377.811389090331,1379.5466326483527,41.23102650604508,953.8184700173654,3184.1741523655005,1.005826736989507,10.22393212127641,72.77970556724073 +TCN,griz,7,365.19149467319886,1623.242887871835,1624.5482570353452,46.2801493674531,1716.2559003591768,6267.892654720675,1.0698688948637856,16.730798478964964,107.95414861974604 +TCN,griz,9,366.1504418779367,1814.3221663295453,1815.47522400854,49.3973279754101,2401.0738583167276,9100.152095096759,1.1163950646182188,22.47311045524309,133.99472714325069 +UTOPIA,riz,3,349.6185108797548,1075.675145794091,1078.6407123542529,22.049289062144382,323.8793960024323,1261.6581240840112,0.6378185069709547,3.7242231168400273,38.989528928298974 +UTOPIA,riz,5,352.05831666637346,1306.8566855578247,1308.8861537439618,31.08341517308914,886.9644728847942,3022.7497294032764,0.7995146985356812,9.18937178798619,63.721691232674466 +UTOPIA,riz,7,352.7421571076664,1497.9863391488182,1499.9100898757274,35.10846591761345,1486.2175835182318,5627.884999344268,0.8558781658270336,14.242391726501891,90.80943557970616 +UTOPIA,riz,9,353.2085513945343,1612.389951230373,1614.4012606835558,36.26826202844307,2022.4960350662775,8148.840301215002,0.8796245301547753,18.466020669644738,112.24846086416433 +UTOPIA,griz,3,360.96686613063923,1095.658261182328,1098.710372568099,29.774188772359157,297.9350496252242,1258.1221680432616,0.820832773057201,3.5938081561073205,43.11162872127416 +UTOPIA,griz,5,365.2889006261334,1381.372245922882,1383.021500303172,43.24327496131083,950.1118240870254,3226.7687591346767,1.030612964908666,10.154716970297653,74.00025765161858 +UTOPIA,griz,7,367.04486323313233,1620.291800769638,1621.6292328499885,49.640611640491336,1764.4803086973063,6540.459075241295,1.1183071657194077,17.184282577911155,112.81159136238324 +UTOPIA,griz,9,367.64870935035447,1807.4412080479333,1808.6373533759443,52.327396393817615,2481.192362416541,9537.213605781282,1.1594487855078013,23.088841527746602,139.32101950994868 +ZotBin,riz,3,334.4002472219192,986.3400690782427,989.9722058668981,4.787742562018461,250.08040905467755,841.1169371652318,0.2660244049381587,3.6954432277753724,64.79901030261045 +ZotBin,riz,5,346.602269081114,1222.4376712509804,1224.9280657215697,24.77052311125595,1108.2179911510846,3456.176374229378,0.7136091950917328,12.970226410074961,106.43232502117344 +ZotBin,riz,7,349.35405224670313,1452.2784948403903,1454.3988192155377,30.859744111550803,1876.296812546644,6887.435695075916,0.7907709176377035,18.12760545238722,121.82082877428385 +ZotBin,riz,9,350.0442123599155,1560.2414975112597,1562.2280309860837,29.08088634421981,2449.0707997038467,8013.256065557642,0.7446040354117153,23.250729951527287,135.3287129508001 +ZotBin,griz,3,343.7914371439896,1071.3145275995535,1073.6011258721155,4.017731289162191,372.3121360942823,1157.2550779637616,0.24626027432512917,4.785720680178472,77.63243499644722 +ZotBin,griz,5,353.92627619578815,1302.214755251284,1304.0165680754462,27.31104833064226,1252.5533628613384,3693.7284727435413,0.799436260589871,14.5709658848259,119.95476720147713 +ZotBin,griz,7,356.97001423878686,1541.0599319918654,1542.5712377941413,35.88951853395655,2103.7720739715105,6499.672019922776,0.9252765265180913,21.47845958803442,141.7516754474678 +ZotBin,griz,9,357.9389859494306,1740.4978013837679,1741.8135234618223,38.142878687822424,2787.454087960021,9546.893169619601,0.9475184794064982,26.24515661042689,154.6921906698545 +ZotNet,riz,3,340.1984624692151,1003.2133882261369,1006.1633097672253,2.205888454507972,287.41362945940887,844.5871974158014,0.15084259852327656,4.7101559588769675,73.56660111522348 +ZotNet,riz,5,350.3643692750285,1238.0019337494798,1240.4805963203073,29.885248135599156,1219.5081420857991,3816.65799228711,0.8134595304506899,14.192088939009446,111.20212712887354 +ZotNet,riz,7,352.2086489812598,1427.4491225698634,1429.4460223378699,33.11602157432037,1992.485714803553,5569.308722679769,0.855901169152661,21.223137457862308,131.78451505046058 +ZotNet,riz,9,354.27817101844795,1574.0337670849976,1575.8009517190555,34.56950946953518,2604.3503968828754,8150.779287489294,0.8809447035253717,25.000762003411182,145.87915596168293 +ZotNet,griz,3,348.31873437240546,1081.457797926827,1083.4653944563875,2.314731966515432,413.0458990148558,1208.199058548499,0.15570443491587663,5.533225385795406,83.67068925702581 +ZotNet,griz,5,359.95072063855844,1322.9875212533327,1324.6373756549585,33.167177993249084,1378.8891995272295,4128.602307583205,0.9202815879644515,16.225350208815456,128.53662589850072 +ZotNet,griz,7,362.7994434909284,1484.5806617273086,1486.1376714774979,42.31892832821281,2699.824168079103,9040.709256309987,1.0305949300779695,24.281993267751016,150.10909496777737 +ZotNet,griz,9,363.13842031832564,1732.6332759386478,1733.8975676941013,43.025618646632054,3278.8536952501236,9226.34538247677,1.049009702110344,31.439877668387513,167.19451938193725 diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_griz_0.npy.yml new file mode 100644 index 00000000..0bf07166 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1399.1674605620667 +FOM_DETF_3x2: 44.08762175495988 +FOM_DETF_gg: 4.010953584822887 +FOM_DETF_ww: 0.7445660781830541 +FOM_gg: 345.38401394390854 +FOM_ww: 26.42872310266265 +SNR_3x2: 1097.151094848299 +SNR_gg: 1093.4560913213957 +SNR_ww: 358.7241999848635 +counts: + 0: 2922918 + 1: 2398362 + 2: 2798592 + 3: 491320 +name: Autokeras_LSTM_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_riz_0.npy.yml new file mode 100644 index 00000000..d3eac281 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1564.7076210263365 +FOM_DETF_3x2: 31.131292822414355 +FOM_DETF_gg: 3.382441521455935 +FOM_DETF_ww: 0.43083400486807666 +FOM_gg: 327.030579311031 +FOM_ww: 13.832026348035729 +SNR_3x2: 1064.0220058508075 +SNR_gg: 1059.737600607448 +SNR_ww: 335.28761154103955 +counts: + 0: 4552568 + 1: 2501839 + 2: 1493360 + 3: 63425 +name: Autokeras_LSTM_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_griz_0.npy.yml new file mode 100644 index 00000000..067765b5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2977.1718940204014 +FOM_DETF_3x2: 67.54917628625026 +FOM_DETF_gg: 6.866370936903458 +FOM_DETF_ww: 0.3122120714015718 +FOM_gg: 706.884849808079 +FOM_ww: 7.690263355719723 +SNR_3x2: 1243.8761251812427 +SNR_gg: 1242.1989967707711 +SNR_ww: 350.12258832258544 +counts: + 0: 1170177 + 1: 1914899 + 2: 3936202 + 3: 1095437 + 4: 3157 + 5: 491320 +name: Autokeras_LSTM_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_riz_0.npy.yml new file mode 100644 index 00000000..43ba6684 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3336.588527411682 +FOM_DETF_3x2: 74.85112160530004 +FOM_DETF_gg: 10.575429267960718 +FOM_DETF_ww: 0.7652653256564252 +FOM_gg: 1011.6002385026816 +FOM_ww: 30.206930636689822 +SNR_3x2: 1295.2768771177773 +SNR_gg: 1293.1925985090752 +SNR_ww: 351.7957290229856 +counts: + 0: 973780 + 1: 2122225 + 2: 1930457 + 3: 1718658 + 4: 1802647 + 5: 63425 +name: Autokeras_LSTM_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_griz_0.npy.yml new file mode 100644 index 00000000..8a43cd90 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 7250.069185253118 +FOM_DETF_3x2: 122.20932442007197 +FOM_DETF_gg: 18.2450278186623 +FOM_DETF_ww: 1.02623214697331 +FOM_gg: 1906.9898757786166 +FOM_ww: 42.98564002111247 +SNR_3x2: 1603.1353832698949 +SNR_gg: 1601.8023513702224 +SNR_ww: 363.85931274570754 +counts: + 0: 853924 + 1: 1475427 + 2: 1204900 + 3: 837451 + 4: 1808507 + 5: 699676 + 6: 1239987 + 7: 491320 +name: Autokeras_LSTM_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_riz_0.npy.yml new file mode 100644 index 00000000..4616a258 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 5842.372301345694 +FOM_DETF_3x2: 103.37514995898016 +FOM_DETF_gg: 14.57410498353475 +FOM_DETF_ww: 0.8085345964399882 +FOM_gg: 1525.7018812850745 +FOM_ww: 31.063987548305338 +SNR_3x2: 1379.6751898952932 +SNR_gg: 1377.5791714096058 +SNR_ww: 352.35875305412077 +counts: + 0: 393261 + 1: 2268107 + 2: 809939 + 3: 730859 + 4: 3302229 + 5: 16865 + 6: 1026507 + 7: 63425 +name: Autokeras_LSTM_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_griz_0.npy.yml new file mode 100644 index 00000000..32904ae1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 5864.722279080499 +FOM_DETF_3x2: 98.41676675663442 +FOM_DETF_gg: 15.841432029031024 +FOM_DETF_ww: 1.046495827950002 +FOM_gg: 1602.3652751659 +FOM_ww: 44.58210311453985 +SNR_3x2: 1660.7291944885872 +SNR_gg: 1659.1230311795132 +SNR_ww: 364.3053825503094 +counts: + 0: 1908288 + 1: 82421 + 2: 454497 + 3: 1276869 + 4: 940906 + 5: 601171 + 6: 1692608 + 7: 1 + 8: 1163111 + 9: 491320 +name: Autokeras_LSTM_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_riz_0.npy.yml new file mode 100644 index 00000000..aa1c955e --- /dev/null +++ b/paper/results/cosmodc2/metrics/Autokeras_LSTM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 34006 + 1: 1226233 + 2: 559149 + 3: 359844 + 4: 3279737 + 5: 328755 + 7: 1821898 + 8: 938145 + 9: 63425 +name: Autokeras_LSTM_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_3_griz_0.npy.yml new file mode 100644 index 00000000..08e37333 --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 780.8222559585103 +FOM_DETF_3x2: 30.542590145384686 +FOM_DETF_gg: 1.550204945768614 +FOM_DETF_ww: 0.23978109461452182 +FOM_gg: 134.52520874880145 +FOM_ww: 6.247895041323896 +SNR_3x2: 916.2547591589497 +SNR_gg: 907.5923525607382 +SNR_ww: 352.459840079368 +counts: + 0: 4029047 + 1: 4090825 + 2: 491320 +name: CNN_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_3_riz_0.npy.yml new file mode 100644 index 00000000..e2f8a8f1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 883.827646266981 +FOM_DETF_3x2: 27.077352044411384 +FOM_DETF_gg: 0.7683802840006099 +FOM_DETF_ww: 0.23670108767281645 +FOM_gg: 72.07129595642533 +FOM_ww: 7.013585802178403 +SNR_3x2: 896.8255387296932 +SNR_gg: 888.2878670879403 +SNR_ww: 346.7836811158817 +counts: + 0: 4824965 + 1: 3722802 + 2: 63425 +name: CNN_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_5_griz_0.npy.yml new file mode 100644 index 00000000..718290b0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1995.2219199934393 +FOM_DETF_3x2: 57.69534839027539 +FOM_DETF_gg: 7.0967601747359295 +FOM_DETF_ww: 0.937188906151872 +FOM_gg: 613.2128771149125 +FOM_ww: 35.79378358905801 +SNR_3x2: 1249.8882560327322 +SNR_gg: 1247.5898262641517 +SNR_ww: 362.5687457048434 +counts: + 0: 2028077 + 1: 1980097 + 2: 2111328 + 3: 2000370 + 4: 491320 +name: CNN_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_5_riz_0.npy.yml new file mode 100644 index 00000000..17022f0c --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2239.9493342107717 +FOM_DETF_3x2: 50.80941555312656 +FOM_DETF_gg: 6.559269801133083 +FOM_DETF_ww: 0.8134601024705869 +FOM_gg: 631.9021645463207 +FOM_ww: 29.764279843687454 +SNR_3x2: 1218.7298928184484 +SNR_gg: 1216.396864803725 +SNR_ww: 353.9221372149748 +counts: + 0: 2311691 + 1: 2303883 + 2: 2091961 + 3: 1840232 + 4: 63425 +name: CNN_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_7_griz_0.npy.yml new file mode 100644 index 00000000..04b5b76f --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4825.802463854723 +FOM_DETF_3x2: 95.43073270312803 +FOM_DETF_gg: 13.978089512897359 +FOM_DETF_ww: 1.0455141038900628 +FOM_gg: 1373.8631020108471 +FOM_ww: 45.008395942215095 +SNR_3x2: 1512.6619013631584 +SNR_gg: 1511.2456303849026 +SNR_ww: 365.0493054084947 +counts: + 0: 1336907 + 1: 1409816 + 2: 1293786 + 3: 1347047 + 4: 1384032 + 5: 1348284 + 6: 491320 +name: CNN_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_7_riz_0.npy.yml new file mode 100644 index 00000000..f17f63ef --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4189.830978201063 +FOM_DETF_3x2: 76.66260947556226 +FOM_DETF_gg: 11.81099850491642 +FOM_DETF_ww: 0.9192826807140895 +FOM_gg: 1183.7576616168294 +FOM_ww: 37.51481874138734 +SNR_3x2: 1456.3055137642964 +SNR_gg: 1454.5739224014067 +SNR_ww: 356.06503477473467 +counts: + 0: 1772578 + 1: 1303931 + 2: 1456528 + 3: 1163232 + 4: 1608465 + 5: 1243033 + 6: 63425 +name: CNN_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_9_griz_0.npy.yml new file mode 100644 index 00000000..b08b7e50 --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7725.595010769273 +FOM_DETF_3x2: 122.36438007397716 +FOM_DETF_gg: 19.82812599262936 +FOM_DETF_ww: 1.1060115735724414 +FOM_gg: 2074.5554481871363 +FOM_ww: 48.66013654718977 +SNR_3x2: 1732.3046117417757 +SNR_gg: 1731.0861824896444 +SNR_ww: 366.0322625888134 +counts: + 0: 1077823 + 1: 962837 + 2: 1026826 + 3: 959466 + 4: 1023143 + 5: 1096256 + 6: 979135 + 7: 994386 + 8: 491320 +name: CNN_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/CNN_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/CNN_9_riz_0.npy.yml new file mode 100644 index 00000000..aaf69f0c --- /dev/null +++ b/paper/results/cosmodc2/metrics/CNN_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7000.389473431522 +FOM_DETF_3x2: 103.25010286909549 +FOM_DETF_gg: 16.90839729090727 +FOM_DETF_ww: 0.9187762844631431 +FOM_gg: 1808.9291139039449 +FOM_ww: 38.05625766144668 +SNR_3x2: 1630.5446497580122 +SNR_gg: 1628.8702305223937 +SNR_ww: 354.4648112048529 +counts: + 0: 1309758 + 1: 869081 + 2: 1258026 + 3: 1136318 + 4: 703782 + 5: 1215571 + 6: 976966 + 7: 1078265 + 8: 63425 +name: CNN_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_3_griz_0.npy.yml new file mode 100644 index 00000000..3c8c718d --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 898.315225267707 +FOM_DETF_3x2: 34.85518348031177 +FOM_DETF_gg: 3.179261811084729 +FOM_DETF_ww: 0.3369734502346115 +FOM_gg: 273.74526114450623 +FOM_ww: 6.45123558816174 +SNR_3x2: 1072.745352228054 +SNR_gg: 1070.439204237324 +SNR_ww: 342.65344866874227 +counts: + 0: 2098217 + 1: 1331279 + 2: 5181696 +name: ComplexSOM_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_3_riz_0.npy.yml new file mode 100644 index 00000000..6082f5cf --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1097.9665695949882 +FOM_DETF_3x2: 37.98944026271753 +FOM_DETF_gg: 4.1276718895309745 +FOM_DETF_ww: 0.5631125114239804 +FOM_gg: 352.6017202930272 +FOM_ww: 17.341153855967967 +SNR_3x2: 1081.2421935889647 +SNR_gg: 1078.6048822310017 +SNR_ww: 346.8009399107458 +counts: + 0: 1759230 + 1: 3585188 + 2: 3266774 +name: ComplexSOM_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_5_griz_0.npy.yml new file mode 100644 index 00000000..9afa2a67 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1848.4151730014923 +FOM_DETF_3x2: 45.0310708016055 +FOM_DETF_gg: 4.5986466845207525 +FOM_DETF_ww: 0.4953517798115553 +FOM_gg: 447.55276995148995 +FOM_ww: 12.233687768297264 +SNR_3x2: 1142.4160550873971 +SNR_gg: 1140.070206925085 +SNR_ww: 345.66143214911995 +counts: + 0: 2098217 + 1: 467728 + 2: 1541447 + 3: 4495754 + 4: 8046 +name: ComplexSOM_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_5_riz_0.npy.yml new file mode 100644 index 00000000..e6e133f5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3063.0309303373583 +FOM_DETF_3x2: 52.11014174680333 +FOM_DETF_gg: 7.276141862101404 +FOM_DETF_ww: 0.5884916493268175 +FOM_gg: 746.7365530083092 +FOM_ww: 19.69606448714674 +SNR_3x2: 1311.209022744658 +SNR_gg: 1309.0265453256063 +SNR_ww: 347.72982553212364 +counts: + 0: 1832266 + 1: 1840497 + 2: 1787576 + 3: 618990 + 4: 2531863 +name: ComplexSOM_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_7_griz_0.npy.yml new file mode 100644 index 00000000..7bf43434 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4687.833867190513 +FOM_DETF_3x2: 91.622236939346 +FOM_DETF_gg: 11.264976591587137 +FOM_DETF_ww: 0.6075925981140685 +FOM_gg: 1134.7220788206594 +FOM_ww: 19.26825323372608 +SNR_3x2: 1471.8624707063789 +SNR_gg: 1470.2401900875445 +SNR_ww: 347.62977201673124 +counts: + 0: 934653 + 1: 1163564 + 2: 1048509 + 3: 960666 + 4: 1203915 + 5: 3291839 + 6: 8046 +name: ComplexSOM_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_7_riz_0.npy.yml new file mode 100644 index 00000000..4e5e6ab1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6073.258065189834 +FOM_DETF_3x2: 94.36626993664555 +FOM_DETF_gg: 13.972479456697531 +FOM_DETF_ww: 0.6734029543883069 +FOM_gg: 1499.7356883991865 +FOM_ww: 25.00836681417762 +SNR_3x2: 1442.294976915915 +SNR_gg: 1440.2092590301806 +SNR_ww: 349.290523024362 +counts: + 0: 876184 + 1: 956082 + 2: 1840497 + 3: 1787576 + 4: 618990 + 5: 1547766 + 6: 984097 +name: ComplexSOM_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_9_griz_0.npy.yml new file mode 100644 index 00000000..f16c391b --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6603.130725035127 +FOM_DETF_3x2: 100.30530527209855 +FOM_DETF_gg: 13.868710365865523 +FOM_DETF_ww: 0.6457674094758314 +FOM_gg: 1483.781154387205 +FOM_ww: 21.48806188268375 +SNR_3x2: 1558.108908617058 +SNR_gg: 1556.530847612376 +SNR_ww: 348.0951468393755 +counts: + 0: 915578 + 1: 1185196 + 2: 426872 + 3: 388715 + 4: 1191031 + 5: 950143 + 6: 426160 + 7: 3119451 + 8: 8046 +name: ComplexSOM_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ComplexSOM_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ComplexSOM_9_riz_0.npy.yml new file mode 100644 index 00000000..6b5c5d3d --- /dev/null +++ b/paper/results/cosmodc2/metrics/ComplexSOM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7919.584982963892 +FOM_DETF_3x2: 101.60722111995368 +FOM_DETF_gg: 16.236057947985696 +FOM_DETF_ww: 0.678120737540818 +FOM_gg: 1830.672944352116 +FOM_ww: 25.39449434842955 +SNR_3x2: 1540.0314793157102 +SNR_gg: 1538.0654760828534 +SNR_ww: 349.53012564975836 +counts: + 0: 876184 + 1: 956082 + 2: 211714 + 3: 1787952 + 4: 1628407 + 5: 618990 + 6: 845246 + 7: 702520 + 8: 984097 +name: ComplexSOM_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ENSEMBLE1_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ENSEMBLE1_3_riz_0.npy.yml new file mode 100644 index 00000000..6c90143d --- /dev/null +++ b/paper/results/cosmodc2/metrics/ENSEMBLE1_3_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2921.791336016048 +FOM_DETF_3x2: 65.61127234203572 +FOM_DETF_gg: 9.391945913093748 +FOM_DETF_ww: 0.9035868402156987 +FOM_gg: 877.996848027819 +FOM_ww: 35.98162919261638 +SNR_3x2: 1330.1112830171858 +SNR_gg: 1328.1582511864756 +SNR_ww: 355.7962476383661 +counts: + 0: 2022452 + 1: 1717220 + 2: 1601935 + 3: 1963698 + 4: 1305887 +name: ENSEMBLE1_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ENSEMBLE1_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ENSEMBLE1_5_riz_0.npy.yml new file mode 100644 index 00000000..cd0727fe --- /dev/null +++ b/paper/results/cosmodc2/metrics/ENSEMBLE1_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2924.2579265665645 +FOM_DETF_3x2: 65.62723003186325 +FOM_DETF_gg: 9.39406013535617 +FOM_DETF_ww: 0.9035011112273215 +FOM_gg: 878.52248730165 +FOM_ww: 35.976219535815716 +SNR_3x2: 1330.2275377653532 +SNR_gg: 1328.2748791518031 +SNR_ww: 355.79519762502525 +counts: + 0: 2022995 + 1: 1716124 + 2: 1605175 + 3: 1964019 + 4: 1302879 +name: ENSEMBLE1_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ENSEMBLE1_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ENSEMBLE1_7_riz_0.npy.yml new file mode 100644 index 00000000..2bdd918a --- /dev/null +++ b/paper/results/cosmodc2/metrics/ENSEMBLE1_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5791.169855349383 +FOM_DETF_3x2: 94.81634591270999 +FOM_DETF_gg: 15.222200452052968 +FOM_DETF_ww: 0.9259815060711174 +FOM_gg: 1582.7591780166729 +FOM_ww: 38.630910048115766 +SNR_3x2: 1558.4231298937011 +SNR_gg: 1556.8120188207427 +SNR_ww: 356.04058377517003 +counts: + 0: 1341545 + 1: 1150130 + 2: 1432035 + 3: 1072378 + 4: 1225904 + 5: 1211325 + 6: 1177875 +name: ENSEMBLE1_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_3_griz_0.npy.yml new file mode 100644 index 00000000..d3f21547 --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 667.7623360380521 +FOM_DETF_3x2: 27.839974016047353 +FOM_DETF_gg: 0.3796705384904976 +FOM_DETF_ww: 0.23947200284509898 +FOM_gg: 32.52076858316576 +FOM_ww: 6.470135799347447 +SNR_3x2: 911.0424971500795 +SNR_gg: 903.6750438496626 +SNR_ww: 352.79358145703964 +counts: + -1: 0 + 0: 4270779 + 1: 4340413 +name: GPzBinning_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_3_riz_0.npy.yml new file mode 100644 index 00000000..3cd11778 --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 775.8304544039968 +FOM_DETF_3x2: 26.23162563078974 +FOM_DETF_gg: 0.364680620678581 +FOM_DETF_ww: 0.22425954461638536 +FOM_gg: 33.72032234002467 +FOM_ww: 6.897230268159615 +SNR_3x2: 892.1845177339211 +SNR_gg: 882.3979527666136 +SNR_ww: 346.55385504137433 +counts: + -1: 0 + 0: 4758357 + 1: 3852835 +name: GPzBinning_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_5_griz_0.npy.yml new file mode 100644 index 00000000..26d498fb --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2050.1233672195685 +FOM_DETF_3x2: 55.25181192565883 +FOM_DETF_gg: 6.481757570920146 +FOM_DETF_ww: 0.9359298532153846 +FOM_gg: 575.2318476018206 +FOM_ww: 35.981304668320696 +SNR_3x2: 1253.0985029971234 +SNR_gg: 1250.921696206405 +SNR_ww: 363.01545007817066 +counts: + -1: 0 + 0: 2205119 + 1: 2072649 + 2: 1985968 + 3: 2347456 +name: GPzBinning_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_5_riz_0.npy.yml new file mode 100644 index 00000000..a1c0e53f --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2226.2704595413707 +FOM_DETF_3x2: 49.66880093060949 +FOM_DETF_gg: 6.300845956670509 +FOM_DETF_ww: 0.6990187878102238 +FOM_gg: 623.9204935986297 +FOM_ww: 23.922424800914 +SNR_3x2: 1200.1770431593652 +SNR_gg: 1197.9553488559704 +SNR_ww: 354.75272881788686 +counts: + -1: 0 + 0: 1671230 + 1: 3102750 + 2: 1632674 + 3: 2204538 +name: GPzBinning_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_7_griz_0.npy.yml new file mode 100644 index 00000000..5559150e --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4435.180994267844 +FOM_DETF_3x2: 87.24106244092643 +FOM_DETF_gg: 12.972203104409461 +FOM_DETF_ww: 1.0700581363331094 +FOM_gg: 1268.358210140685 +FOM_ww: 45.96354330054218 +SNR_3x2: 1499.2201493608043 +SNR_gg: 1497.7551389515027 +SNR_ww: 365.95284733436864 +counts: + -1: 0 + 0: 1610984 + 1: 1266432 + 2: 1401598 + 3: 1360535 + 4: 1660258 + 5: 1311385 +name: GPzBinning_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_7_riz_0.npy.yml new file mode 100644 index 00000000..9f5ace46 --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4131.228243727043 +FOM_DETF_3x2: 80.83787786011987 +FOM_DETF_gg: 11.449916265843317 +FOM_DETF_ww: 0.8359702231033539 +FOM_gg: 1140.9506290807442 +FOM_ww: 33.12222340229107 +SNR_3x2: 1371.2673451014937 +SNR_gg: 1369.3350832326544 +SNR_ww: 357.3167450986562 +counts: + -1: 0 + 0: 1168390 + 1: 1066924 + 2: 2529321 + 3: 814446 + 4: 1992390 + 5: 1039721 +name: GPzBinning_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_9_griz_0.npy.yml new file mode 100644 index 00000000..dee8efe2 --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8064.683726301463 +FOM_DETF_3x2: 126.9373322154741 +FOM_DETF_gg: 20.209019367872543 +FOM_DETF_ww: 1.098969722242834 +FOM_gg: 2129.807999606044 +FOM_ww: 47.83497925629094 +SNR_3x2: 1701.9459885529386 +SNR_gg: 1700.6990475732387 +SNR_ww: 366.4825472897873 +counts: + -1: 0 + 0: 971482 + 1: 1220873 + 2: 1039806 + 3: 1039271 + 4: 1084949 + 5: 959463 + 6: 1304626 + 7: 990722 +name: GPzBinning_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/GPzBinning_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/GPzBinning_9_riz_0.npy.yml new file mode 100644 index 00000000..7ae95ada --- /dev/null +++ b/paper/results/cosmodc2/metrics/GPzBinning_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7197.583183401822 +FOM_DETF_3x2: 111.73258054821996 +FOM_DETF_gg: 16.92584236877476 +FOM_DETF_ww: 0.8698030325042723 +FOM_gg: 1825.8234202579654 +FOM_ww: 35.10769901743064 +SNR_3x2: 1507.3653895084194 +SNR_gg: 1505.421675131169 +SNR_ww: 358.19126490449844 +counts: + -1: 0 + 0: 828362 + 1: 804999 + 2: 1210069 + 3: 1916309 + 4: 623320 + 5: 1012642 + 6: 1439389 + 7: 776102 +name: GPzBinning_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_3_griz_0.npy.yml new file mode 100644 index 00000000..a9840257 --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 753.4166733139978 +FOM_DETF_3x2: 38.043115793553255 +FOM_DETF_gg: 2.565248453487733 +FOM_DETF_ww: 0.04837985563193023 +FOM_gg: 216.17668611868268 +FOM_ww: 0.7788954780369381 +SNR_3x2: 782.3407446434188 +SNR_gg: 766.7835234259547 +SNR_ww: 327.6171490895921 +counts: + 0: 10160 + 1: 1175784 + 2: 7425248 +name: IBandOnly_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_3_riz_0.npy.yml new file mode 100644 index 00000000..75b39f2a --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 753.4166733139978 +FOM_DETF_3x2: 38.043115793553255 +FOM_DETF_gg: 2.565248453487733 +FOM_DETF_ww: 0.04837985563193023 +FOM_gg: 216.17668611868268 +FOM_ww: 0.7788954780369381 +SNR_3x2: 782.3407446434188 +SNR_gg: 766.7835234259547 +SNR_ww: 327.6171490895921 +counts: + 0: 10160 + 1: 1175784 + 2: 7425248 +name: IBandOnly_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_5_griz_0.npy.yml new file mode 100644 index 00000000..914159bb --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1237.9817077177868 +FOM_DETF_3x2: 49.96394082799005 +FOM_DETF_gg: 4.753923950514638 +FOM_DETF_ww: 0.12961609245134365 +FOM_gg: 410.7863911486554 +FOM_ww: 2.573638302734779 +SNR_3x2: 828.7621212796174 +SNR_gg: 815.630045734318 +SNR_ww: 329.23829181161096 +counts: + 0: 1159 + 1: 30152 + 2: 514585 + 3: 3082866 + 4: 4982430 +name: IBandOnly_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_5_riz_0.npy.yml new file mode 100644 index 00000000..8b7ff9b9 --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 1237.9817077177868 +FOM_DETF_3x2: 49.96394082799005 +FOM_DETF_gg: 4.753923950514638 +FOM_DETF_ww: 0.12961609245134365 +FOM_gg: 410.7863911486554 +FOM_ww: 2.573638302734779 +SNR_3x2: 828.7621212796174 +SNR_gg: 815.630045734318 +SNR_ww: 329.23829181161096 +counts: + 0: 1159 + 1: 30152 + 2: 514585 + 3: 3082866 + 4: 4982430 +name: IBandOnly_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_7_griz_0.npy.yml new file mode 100644 index 00000000..fa4e3ef7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 1423.7710852898472 +FOM_DETF_3x2: 54.397106556654634 +FOM_DETF_gg: 5.496749789284911 +FOM_DETF_ww: 0.14974995108685615 +FOM_gg: 481.2231146869029 +FOM_ww: 3.1940429811499143 +SNR_3x2: 851.9253507200686 +SNR_gg: 839.6612197967921 +SNR_ww: 329.9141433202445 +counts: + 0: 406 + 1: 4112 + 2: 44834 + 3: 327574 + 4: 1509568 + 5: 3336268 + 6: 3388430 +name: IBandOnly_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_7_riz_0.npy.yml new file mode 100644 index 00000000..7a460bfb --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 1423.7710852898472 +FOM_DETF_3x2: 54.397106556654634 +FOM_DETF_gg: 5.496749789284911 +FOM_DETF_ww: 0.14974995108685615 +FOM_gg: 481.2231146869029 +FOM_ww: 3.1940429811499143 +SNR_3x2: 851.9253507200686 +SNR_gg: 839.6612197967921 +SNR_ww: 329.9141433202445 +counts: + 0: 406 + 1: 4112 + 2: 44834 + 3: 327574 + 4: 1509568 + 5: 3336268 + 6: 3388430 +name: IBandOnly_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_9_griz_0.npy.yml new file mode 100644 index 00000000..e8cecb1f --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 1829.9463110573517 +FOM_DETF_3x2: 57.26816294399211 +FOM_DETF_gg: 6.1067246632804615 +FOM_DETF_ww: 0.16124319859839736 +FOM_gg: 583.0526695665787 +FOM_ww: 3.59910631198839 +SNR_3x2: 866.5662584834199 +SNR_gg: 854.7034973511486 +SNR_ww: 330.33510075887835 +counts: + 0: 235 + 1: 1403 + 2: 8522 + 3: 52850 + 4: 242016 + 5: 880918 + 6: 1940212 + 7: 3088269 + 8: 2396767 +name: IBandOnly_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/IBandOnly_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/IBandOnly_9_riz_0.npy.yml new file mode 100644 index 00000000..f561e5ae --- /dev/null +++ b/paper/results/cosmodc2/metrics/IBandOnly_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 1829.9463110573517 +FOM_DETF_3x2: 57.26816294399211 +FOM_DETF_gg: 6.1067246632804615 +FOM_DETF_ww: 0.16124319859839736 +FOM_gg: 583.0526695665787 +FOM_ww: 3.59910631198839 +SNR_3x2: 866.5662584834199 +SNR_gg: 854.7034973511486 +SNR_ww: 330.33510075887835 +counts: + 0: 235 + 1: 1403 + 2: 8522 + 3: 52850 + 4: 242016 + 5: 880918 + 6: 1940212 + 7: 3088269 + 8: 2396767 +name: IBandOnly_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_3_griz_0.npy.yml new file mode 100644 index 00000000..ec5a5ba5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 994.0803518273876 +FOM_DETF_3x2: 79.74382537730521 +FOM_DETF_gg: 4.783626845071944 +FOM_DETF_ww: 0.20725268121989454 +FOM_gg: 316.6888438293315 +FOM_ww: 3.2680752985577963 +SNR_3x2: 1079.4307996884202 +SNR_gg: 1077.2945203509041 +SNR_ww: 348.52167747328554 +counts: + 0: 5760930 + 1: 2561068 + 2: 289194 +name: JaxCNN_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_3_riz_0.npy.yml new file mode 100644 index 00000000..bca83ab3 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1000.8626545169931 +FOM_DETF_3x2: 59.945488260086876 +FOM_DETF_gg: 3.8474859874759146 +FOM_DETF_ww: 0.3595118457634627 +FOM_gg: 254.63847660239705 +FOM_ww: 9.303522316037979 +SNR_3x2: 970.1900651284875 +SNR_gg: 964.6658380896102 +SNR_ww: 331.25805639529744 +counts: + 0: 5862928 + 1: 1656702 + 2: 1091562 +name: JaxCNN_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_5_griz_0.npy.yml new file mode 100644 index 00000000..78c214d8 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4316.412812776005 +FOM_DETF_3x2: 125.19990696203908 +FOM_DETF_gg: 15.752812985199357 +FOM_DETF_ww: 0.9899778637548478 +FOM_gg: 1355.9129806156498 +FOM_ww: 37.96861672016124 +SNR_3x2: 1332.9570771368303 +SNR_gg: 1331.257594046213 +SNR_ww: 362.989496701993 +counts: + 0: 2846814 + 1: 1958796 + 2: 1159126 + 3: 273963 + 4: 2372493 +name: JaxCNN_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_5_riz_0.npy.yml new file mode 100644 index 00000000..4d40b9cd --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3970.2421566080625 +FOM_DETF_3x2: 101.93543153611367 +FOM_DETF_gg: 12.6597079281493 +FOM_DETF_ww: 0.7200875538076205 +FOM_gg: 1162.7139791582026 +FOM_ww: 27.918635327615483 +SNR_3x2: 1221.1237949906804 +SNR_gg: 1218.1354469695877 +SNR_ww: 346.7362194976647 +counts: + 0: 207515 + 1: 1550110 + 2: 1504652 + 3: 2168309 + 4: 3180606 +name: JaxCNN_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_7_griz_0.npy.yml new file mode 100644 index 00000000..4a04cde3 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6097.005714896129 +FOM_DETF_3x2: 149.98966177643015 +FOM_DETF_gg: 22.58203909978717 +FOM_DETF_ww: 1.055757620763155 +FOM_gg: 2073.5213509287087 +FOM_ww: 42.69165890069376 +SNR_3x2: 1556.3768638109918 +SNR_gg: 1554.9745529388629 +SNR_ww: 364.5286268776154 +counts: + 0: 1288846 + 1: 2289337 + 2: 2041700 + 3: 612254 + 4: 110561 + 5: 1225600 + 6: 1042894 +name: JaxCNN_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_7_riz_0.npy.yml new file mode 100644 index 00000000..31814b1b --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4934.924877269086 +FOM_DETF_3x2: 105.21794204190276 +FOM_DETF_gg: 13.847811030125502 +FOM_DETF_ww: 0.7501069256563266 +FOM_gg: 1366.8472525680709 +FOM_ww: 29.0453530497331 +SNR_3x2: 1285.5725914127208 +SNR_gg: 1282.8755467476935 +SNR_ww: 347.83674523008693 +counts: + 0: 1894471 + 1: 2055175 + 2: 2071843 + 3: 345677 + 4: 495906 + 5: 458782 + 6: 1289338 +name: JaxCNN_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_9_griz_0.npy.yml new file mode 100644 index 00000000..cb12e2e1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_9_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 1: 134537 + 2: 1019892 + 3: 1345585 + 4: 618170 + 5: 887048 + 6: 1665515 + 7: 1740999 + 8: 1199446 +name: JaxCNN_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxCNN_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxCNN_9_riz_0.npy.yml new file mode 100644 index 00000000..cfff1c11 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxCNN_9_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 207268 + 1: 944348 + 3: 1727116 + 5: 2464377 + 6: 1289417 + 7: 1555984 + 8: 422682 +name: JaxCNN_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_3_griz_0.npy.yml new file mode 100644 index 00000000..bc16dc4e --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 950.4586372510038 +FOM_DETF_3x2: 82.21550422928046 +FOM_DETF_gg: 5.058002522072767 +FOM_DETF_ww: 0.14721831043765105 +FOM_gg: 324.645067019585 +FOM_ww: 2.215709239835949 +SNR_3x2: 1075.492120361787 +SNR_gg: 1073.4357095693633 +SNR_ww: 348.96060093978673 +counts: + 0: 215873 + 1: 2474431 + 2: 5920888 +name: JaxResNet_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_3_riz_0.npy.yml new file mode 100644 index 00000000..cd73809e --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 858.0501604440103 +FOM_DETF_3x2: 73.72812832168258 +FOM_DETF_gg: 4.586634466577423 +FOM_DETF_ww: 0.14171391635027894 +FOM_gg: 291.8194610739686 +FOM_ww: 2.0648980807369504 +SNR_3x2: 1011.6782360420391 +SNR_gg: 1008.8299588642768 +SNR_ww: 341.0295814400317 +counts: + 0: 5988906 + 1: 267095 + 2: 2355191 +name: JaxResNet_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_5_griz_0.npy.yml new file mode 100644 index 00000000..c6871a2a --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3497.3484574145327 +FOM_DETF_3x2: 126.0319329962518 +FOM_DETF_gg: 15.209626370461086 +FOM_DETF_ww: 0.876043814306874 +FOM_gg: 1204.3053514819844 +FOM_ww: 31.0912593860561 +SNR_3x2: 1291.2002785151872 +SNR_gg: 1289.459716086826 +SNR_ww: 359.37358741118595 +counts: + 0: 4162999 + 1: 1912095 + 2: 175402 + 3: 1204011 + 4: 1156685 +name: JaxResNet_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_5_riz_0.npy.yml new file mode 100644 index 00000000..5396a24f --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3994.4756006397242 +FOM_DETF_3x2: 111.12601027897314 +FOM_DETF_gg: 13.945574597737878 +FOM_DETF_ww: 0.8162768393926229 +FOM_gg: 1224.9131307711682 +FOM_ww: 30.76474977486003 +SNR_3x2: 1241.7303096234714 +SNR_gg: 1239.3247493569327 +SNR_ww: 350.7351827704152 +counts: + 0: 201035 + 1: 1840039 + 2: 1259172 + 3: 2779068 + 4: 2531878 +name: JaxResNet_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_7_griz_0.npy.yml new file mode 100644 index 00000000..926b7e4d --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_7_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 2809224 + 1: 2525999 + 3: 853775 + 4: 1603728 + 5: 649853 + 6: 168613 +name: JaxResNet_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_7_riz_0.npy.yml new file mode 100644 index 00000000..69431f7a --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 7352.8388199297715 +FOM_DETF_3x2: 131.57901477364894 +FOM_DETF_gg: 20.02035357114989 +FOM_DETF_ww: 0.9241192976294903 +FOM_gg: 2105.623366310613 +FOM_ww: 37.8697338450175 +SNR_3x2: 1388.1658817718458 +SNR_gg: 1385.9113573214356 +SNR_ww: 354.7270690550118 +counts: + 0: 1370590 + 1: 446011 + 2: 140859 + 3: 1547669 + 4: 1093094 + 5: 1903474 + 6: 2109495 +name: JaxResNet_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_9_griz_0.npy.yml new file mode 100644 index 00000000..f8eea1bd --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 6438.715053444325 +FOM_DETF_3x2: 161.49734996256177 +FOM_DETF_gg: 26.344284316258953 +FOM_DETF_ww: 1.096967937625004 +FOM_gg: 2408.9626642350995 +FOM_ww: 44.71929248599692 +SNR_3x2: 1609.6025456287448 +SNR_gg: 1608.2180406069647 +SNR_ww: 365.4635709529704 +counts: + 0: 269120 + 1: 2617560 + 2: 1134856 + 3: 1129701 + 4: 1948146 + 5: 159159 + 6: 13542 + 7: 794817 + 8: 544291 +name: JaxResNet_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/JaxResNet_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/JaxResNet_9_riz_0.npy.yml new file mode 100644 index 00000000..88f98f48 --- /dev/null +++ b/paper/results/cosmodc2/metrics/JaxResNet_9_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: .nan +FOM_DETF_3x2: .nan +FOM_DETF_gg: .nan +FOM_DETF_ww: .nan +FOM_gg: .nan +FOM_ww: .nan +SNR_3x2: .nan +SNR_gg: .nan +SNR_ww: .nan +counts: + 0: 140717 + 1: 2328940 + 3: 1129556 + 4: 507468 + 5: 613338 + 6: 1101024 + 7: 693418 + 8: 2096731 +name: JaxResNet_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_3_griz_0.npy.yml new file mode 100644 index 00000000..98571af9 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 781.0213111110246 +FOM_DETF_3x2: 30.294191262282286 +FOM_DETF_gg: 1.5546598048806313 +FOM_DETF_ww: 0.24021090062749093 +FOM_gg: 135.14160561114605 +FOM_ww: 6.30561273064868 +SNR_3x2: 916.4891094264094 +SNR_gg: 907.7511651040228 +SNR_ww: 352.5222987704111 +counts: + 0: 4054895 + 1: 4064977 + 2: 491320 +name: LGBM_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_3_riz_0.npy.yml new file mode 100644 index 00000000..6c74e381 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 868.6080988981497 +FOM_DETF_3x2: 27.041843266908174 +FOM_DETF_gg: 0.7652902133508288 +FOM_DETF_ww: 0.23604896640947848 +FOM_gg: 71.400976241773 +FOM_ww: 6.9697484711642925 +SNR_3x2: 896.6159488655553 +SNR_gg: 888.124489664498 +SNR_ww: 346.69057725113936 +counts: + 0: 4695711 + 1: 3852056 + 2: 63425 +name: LGBM_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_5_griz_0.npy.yml new file mode 100644 index 00000000..beba866c --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2038.551230786447 +FOM_DETF_3x2: 57.44233011936033 +FOM_DETF_gg: 7.091871559085813 +FOM_DETF_ww: 0.9418337617163564 +FOM_gg: 620.3965546997589 +FOM_ww: 36.291635827311424 +SNR_3x2: 1253.0427641134474 +SNR_gg: 1250.718387170753 +SNR_ww: 362.77653972103735 +counts: + 0: 2042486 + 1: 2011072 + 2: 2034207 + 3: 2032107 + 4: 491320 +name: LGBM_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_5_riz_0.npy.yml new file mode 100644 index 00000000..bd832b5c --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2280.6641941727676 +FOM_DETF_3x2: 50.80383188221854 +FOM_DETF_gg: 6.604523348237801 +FOM_DETF_ww: 0.8179307335802147 +FOM_gg: 640.757773648028 +FOM_ww: 30.067554023554003 +SNR_3x2: 1225.553577288562 +SNR_gg: 1223.2529863431212 +SNR_ww: 354.2272922795131 +counts: + 0: 2269847 + 1: 2344769 + 2: 2016459 + 3: 1916692 + 4: 63425 +name: LGBM_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_7_griz_0.npy.yml new file mode 100644 index 00000000..0ad82118 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4684.7292409432575 +FOM_DETF_3x2: 92.86633846457859 +FOM_DETF_gg: 13.652424262219494 +FOM_DETF_ww: 1.054345328444117 +FOM_gg: 1337.6755324134626 +FOM_ww: 45.44814316547565 +SNR_3x2: 1515.256246921752 +SNR_gg: 1513.827775130199 +SNR_ww: 365.235047238233 +counts: + 0: 1417719 + 1: 1296080 + 2: 1341115 + 3: 1357060 + 4: 1365410 + 5: 1342488 + 6: 491320 +name: LGBM_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_7_riz_0.npy.yml new file mode 100644 index 00000000..9aa47aca --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4336.21119960023 +FOM_DETF_3x2: 78.78104588436605 +FOM_DETF_gg: 12.030004133710404 +FOM_DETF_ww: 0.9168767601788791 +FOM_gg: 1212.3949015866267 +FOM_ww: 37.517408718785546 +SNR_3x2: 1463.4680696739713 +SNR_gg: 1461.7715795312258 +SNR_ww: 356.18263365675443 +counts: + 0: 1717833 + 1: 1223410 + 2: 1578508 + 3: 1260699 + 4: 1471981 + 5: 1295336 + 6: 63425 +name: LGBM_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_9_griz_0.npy.yml new file mode 100644 index 00000000..937520c7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7933.387990480731 +FOM_DETF_3x2: 125.1795591947116 +FOM_DETF_gg: 20.238251742408067 +FOM_DETF_ww: 1.102615103399664 +FOM_gg: 2121.9678978547577 +FOM_ww: 48.606999714805895 +SNR_3x2: 1735.5645201713423 +SNR_gg: 1734.3569754802554 +SNR_ww: 365.8331576216186 +counts: + 0: 1007208 + 1: 1036587 + 2: 1024079 + 3: 996725 + 4: 1032125 + 5: 1021286 + 6: 1004050 + 7: 997812 + 8: 491320 +name: LGBM_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LGBM_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LGBM_9_riz_0.npy.yml new file mode 100644 index 00000000..ae8f9049 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LGBM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7215.118645526565 +FOM_DETF_3x2: 108.23831223412833 +FOM_DETF_gg: 17.785373886588133 +FOM_DETF_ww: 0.9433111004661285 +FOM_gg: 1896.2234552893335 +FOM_ww: 39.55168171148294 +SNR_3x2: 1640.503438922307 +SNR_gg: 1638.9042206778472 +SNR_ww: 356.25520511775005 +counts: + 0: 1175313 + 1: 972931 + 2: 1190461 + 3: 1041603 + 4: 952960 + 5: 1194145 + 6: 969955 + 7: 1050399 + 8: 63425 +name: LGBM_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_3_griz_0.npy.yml new file mode 100644 index 00000000..50c7588c --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 782.9870645525723 +FOM_DETF_3x2: 30.23988855478629 +FOM_DETF_gg: 1.5612055205213364 +FOM_DETF_ww: 0.24125623490714893 +FOM_gg: 135.90505191230275 +FOM_ww: 6.366585498923861 +SNR_3x2: 916.1766947230307 +SNR_gg: 907.4056232132117 +SNR_ww: 352.4976554460017 +counts: + 0: 4072870 + 1: 4047002 + 2: 491320 +name: LSTM_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_3_riz_0.npy.yml new file mode 100644 index 00000000..127e8f58 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 864.9930251839221 +FOM_DETF_3x2: 26.738508037727346 +FOM_DETF_gg: 0.7696581596755236 +FOM_DETF_ww: 0.2328095051067616 +FOM_gg: 71.85515719367399 +FOM_ww: 6.892108032446374 +SNR_3x2: 896.9028679274271 +SNR_gg: 888.3943698439764 +SNR_ww: 346.42032366520294 +counts: + 0: 4757468 + 1: 3790299 + 2: 63425 +name: LSTM_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_5_griz_0.npy.yml new file mode 100644 index 00000000..a69a8a0b --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2004.3753485232082 +FOM_DETF_3x2: 57.09795167693938 +FOM_DETF_gg: 7.052823863156465 +FOM_DETF_ww: 0.9316970004217914 +FOM_gg: 613.0448253308937 +FOM_ww: 35.51246553976626 +SNR_3x2: 1249.0188354757565 +SNR_gg: 1246.7165075132507 +SNR_ww: 362.323161447533 +counts: + 0: 2058810 + 1: 1995143 + 2: 2069677 + 3: 1996242 + 4: 491320 +name: LSTM_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_5_riz_0.npy.yml new file mode 100644 index 00000000..9aa281a6 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2244.0073631588425 +FOM_DETF_3x2: 51.065305344244706 +FOM_DETF_gg: 6.67114570629246 +FOM_DETF_ww: 0.8103392599118507 +FOM_gg: 643.4871261214896 +FOM_ww: 29.33071758106121 +SNR_3x2: 1221.2936085149406 +SNR_gg: 1219.0267955090146 +SNR_ww: 353.4608678028491 +counts: + 0: 2291705 + 1: 2214003 + 2: 2210181 + 3: 1831878 + 4: 63425 +name: LSTM_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_7_griz_0.npy.yml new file mode 100644 index 00000000..822ac087 --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4829.2122419240295 +FOM_DETF_3x2: 95.85314113476021 +FOM_DETF_gg: 13.92036474226948 +FOM_DETF_ww: 1.0420039110141872 +FOM_gg: 1367.7844561740974 +FOM_ww: 44.645288911472825 +SNR_3x2: 1512.3686036747838 +SNR_gg: 1510.9539944751089 +SNR_ww: 365.014707898887 +counts: + 0: 1323318 + 1: 1342024 + 2: 1397090 + 3: 1314652 + 4: 1321690 + 5: 1421098 + 6: 491320 +name: LSTM_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_7_riz_0.npy.yml new file mode 100644 index 00000000..6a61620b --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4451.2979273668325 +FOM_DETF_3x2: 81.44671122611028 +FOM_DETF_gg: 12.239742608533296 +FOM_DETF_ww: 0.8959122184155172 +FOM_gg: 1232.3309628731713 +FOM_ww: 36.755475015823244 +SNR_3x2: 1454.4987207719528 +SNR_gg: 1452.7691713386575 +SNR_ww: 355.26447585745024 +counts: + 0: 1488848 + 1: 1373525 + 2: 1488170 + 3: 1296472 + 4: 1462256 + 5: 1438496 + 6: 63425 +name: LSTM_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_9_griz_0.npy.yml new file mode 100644 index 00000000..38cf385c --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7997.269985727562 +FOM_DETF_3x2: 126.87329936127603 +FOM_DETF_gg: 20.28457336074723 +FOM_DETF_ww: 1.1087208206254098 +FOM_gg: 2125.535553787216 +FOM_ww: 48.87719618339573 +SNR_3x2: 1730.4676831450604 +SNR_gg: 1729.2558760308934 +SNR_ww: 366.0605272012479 +counts: + 0: 942669 + 1: 1090408 + 2: 979111 + 3: 1062011 + 4: 1064543 + 5: 878273 + 6: 1127046 + 7: 975811 + 8: 491320 +name: LSTM_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/LSTM_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/LSTM_9_riz_0.npy.yml new file mode 100644 index 00000000..0a4d924e --- /dev/null +++ b/paper/results/cosmodc2/metrics/LSTM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7008.341204693927 +FOM_DETF_3x2: 103.62726009872189 +FOM_DETF_gg: 17.012483508460278 +FOM_DETF_ww: 0.9195074158807738 +FOM_gg: 1817.9683101314038 +FOM_ww: 38.156617936875584 +SNR_3x2: 1630.7727913961376 +SNR_gg: 1629.1381850171906 +SNR_ww: 354.2444733513308 +counts: + 0: 1206919 + 1: 697179 + 2: 927049 + 3: 1284071 + 4: 967754 + 5: 1058184 + 6: 1160951 + 7: 1245660 + 8: 63425 +name: LSTM_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/MineCraft_0_griz_0.npy.yml b/paper/results/cosmodc2/metrics/MineCraft_0_griz_0.npy.yml new file mode 100644 index 00000000..7a94c1f4 --- /dev/null +++ b/paper/results/cosmodc2/metrics/MineCraft_0_griz_0.npy.yml @@ -0,0 +1,23 @@ +FOM_3x2: 6017.403367659834 +FOM_DETF_3x2: 80.234249164261 +FOM_DETF_gg: 11.43158214244616 +FOM_DETF_ww: 0.6786524409458121 +FOM_gg: 1251.2006596013366 +FOM_ww: 24.65289549237458 +SNR_3x2: 1358.747704971965 +SNR_gg: 1355.5807370708096 +SNR_ww: 348.92381672607723 +counts: + 0: 2361141 + 1: 427637 + 2: 272106 + 3: 460192 + 4: 344173 + 5: 438082 + 6: 687117 + 7: 751839 + 8: 327436 + 9: 1721355 + 10: 419284 + 11: 400830 +name: MineCraft_0_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/MineCraft_0_riz_0.npy.yml b/paper/results/cosmodc2/metrics/MineCraft_0_riz_0.npy.yml new file mode 100644 index 00000000..93099980 --- /dev/null +++ b/paper/results/cosmodc2/metrics/MineCraft_0_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 3545.6951538383514 +FOM_DETF_3x2: 51.00683714667423 +FOM_DETF_gg: 6.311160480051712 +FOM_DETF_ww: 0.3668400128354896 +FOM_gg: 664.754384175693 +FOM_ww: 12.323442538000512 +SNR_3x2: 1082.0403328728578 +SNR_gg: 1075.2544889049668 +SNR_ww: 331.4568066446257 +counts: + 0: 3695472 + 1: 682775 + 2: 1057108 + 3: 266210 + 4: 858019 + 5: 628638 + 6: 616588 + 7: 806382 +name: MineCraft_0_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_3_griz_0.npy.yml new file mode 100644 index 00000000..b953d0a0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 928.6089353049921 +FOM_DETF_3x2: 81.91906884743891 +FOM_DETF_gg: 5.746483861379524 +FOM_DETF_ww: 0.14810407963253214 +FOM_gg: 345.5385367450915 +FOM_ww: 2.139128941988997 +SNR_3x2: 1069.644116859785 +SNR_gg: 1067.5118908720983 +SNR_ww: 346.48854652620986 +counts: + 0: 214194 + 1: 2953244 + 2: 5443754 +name: NeuralNetwork_3_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_3_riz_0.npy.yml new file mode 100644 index 00000000..2f9508f1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 844.9057498730635 +FOM_DETF_3x2: 76.30069025984314 +FOM_DETF_gg: 5.242347838807582 +FOM_DETF_ww: 0.10643337443079365 +FOM_gg: 310.3658999635035 +FOM_ww: 1.568048131112505 +SNR_3x2: 1019.3078612977354 +SNR_gg: 1016.7063197517335 +SNR_ww: 342.02511050125463 +counts: + 0: 6271314 + 1: 2153682 + 2: 186196 +name: NeuralNetwork_3_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_5_griz_0.npy.yml new file mode 100644 index 00000000..62cdc4dc --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4285.906045896947 +FOM_DETF_3x2: 132.94471906902695 +FOM_DETF_gg: 16.48404943340307 +FOM_DETF_ww: 1.005317617133348 +FOM_gg: 1426.3306104832375 +FOM_ww: 37.73560754231593 +SNR_3x2: 1349.3332096400661 +SNR_gg: 1347.7392513643576 +SNR_ww: 363.3445232503671 +counts: + 0: 1332526 + 1: 1790917 + 2: 237531 + 3: 3832561 + 4: 1417657 +name: NeuralNetwork_5_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_5_riz_0.npy.yml new file mode 100644 index 00000000..1f927e89 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4191.591294119986 +FOM_DETF_3x2: 117.61494777472802 +FOM_DETF_gg: 14.876314237172512 +FOM_DETF_ww: 0.8830201629470535 +FOM_gg: 1307.8694876255443 +FOM_ww: 34.04457657641637 +SNR_3x2: 1272.5740228850116 +SNR_gg: 1270.466921937793 +SNR_ww: 354.95493712881085 +counts: + 0: 2678335 + 1: 1197196 + 2: 2609826 + 3: 1862493 + 4: 263342 +name: NeuralNetwork_5_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_7_griz_0.npy.yml new file mode 100644 index 00000000..afc7307b --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6794.2395828780245 +FOM_DETF_3x2: 157.95247511742744 +FOM_DETF_gg: 25.734274112266103 +FOM_DETF_ww: 1.1275897785807403 +FOM_gg: 2444.264151321868 +FOM_ww: 46.25466146969532 +SNR_3x2: 1549.0175782231192 +SNR_gg: 1547.5867971188686 +SNR_ww: 366.0382139025672 +counts: + 0: 485689 + 1: 127594 + 2: 2999474 + 3: 1890816 + 4: 1024407 + 5: 1478088 + 6: 605124 +name: NeuralNetwork_7_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_7_riz_0.npy.yml new file mode 100644 index 00000000..b8f9e8a9 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 7170.681285218374 +FOM_DETF_3x2: 135.77143057980726 +FOM_DETF_gg: 20.94526484113538 +FOM_DETF_ww: 0.9111937896731934 +FOM_gg: 2166.0590740757366 +FOM_ww: 36.70458692685502 +SNR_3x2: 1467.4172929878887 +SNR_gg: 1465.6556848906607 +SNR_ww: 355.91266238217554 +counts: + 0: 1244520 + 1: 1802924 + 2: 2343976 + 3: 932781 + 4: 1235404 + 5: 129682 + 6: 921905 +name: NeuralNetwork_7_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_9_griz_0.npy.yml new file mode 100644 index 00000000..2b097b47 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7876.266306986826 +FOM_DETF_3x2: 96.94422189301285 +FOM_DETF_gg: 15.896975173363613 +FOM_DETF_ww: 0.6932651282737264 +FOM_gg: 1793.5851009482874 +FOM_ww: 24.999312549222086 +SNR_3x2: 1471.4666811369573 +SNR_gg: 1468.6311793283528 +SNR_ww: 340.5569575750307 +counts: + 0: 798210 + 1: 1164600 + 2: 631025 + 3: 1900942 + 4: 2012144 + 5: 1286257 + 6: 171061 + 7: 479554 + 8: 167399 +name: NeuralNetwork_9_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork1_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork1_9_riz_0.npy.yml new file mode 100644 index 00000000..8a5e171f --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork1_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8666.621078881268 +FOM_DETF_3x2: 109.9105989599077 +FOM_DETF_gg: 18.070509000299566 +FOM_DETF_ww: 0.6923807266483887 +FOM_gg: 2043.7423774272338 +FOM_ww: 25.010269384463 +SNR_3x2: 1515.6140336485323 +SNR_gg: 1512.9987426918894 +SNR_ww: 342.05624719129526 +counts: + 0: 1367849 + 1: 2132986 + 2: 1832255 + 3: 946946 + 4: 962777 + 5: 548311 + 6: 225503 + 7: 131751 + 8: 462814 +name: NeuralNetwork_9_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_3_griz_0.npy.yml new file mode 100644 index 00000000..03147a7d --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1028.6437220233652 +FOM_DETF_3x2: 49.37007477241748 +FOM_DETF_gg: 2.4247925296624975 +FOM_DETF_ww: 0.42374014771384405 +FOM_gg: 182.11319268758044 +FOM_ww: 8.469747831577726 +SNR_3x2: 1126.8560657663754 +SNR_gg: 1120.4650634347315 +SNR_ww: 345.36417603863646 +counts: + 0: 5697648 + 1: 1623766 + 2: 1289778 +name: NeuralNetwork_3_griz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_3_riz_0.npy.yml new file mode 100644 index 00000000..e4a14ece --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1093.7393014245472 +FOM_DETF_3x2: 30.548325200444488 +FOM_DETF_gg: 3.987172503491544 +FOM_DETF_ww: 0.6163000615712212 +FOM_gg: 345.9128389448366 +FOM_ww: 19.167962198647036 +SNR_3x2: 1104.3356060449823 +SNR_gg: 1100.251218499866 +SNR_ww: 334.65015805931876 +counts: + 0: 2401341 + 1: 3142788 + 2: 3067063 +name: NeuralNetwork_3_riz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_5_griz_0.npy.yml new file mode 100644 index 00000000..4b95a3b7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3197.9030293860246 +FOM_DETF_3x2: 102.73803827438434 +FOM_DETF_gg: 9.590196283793055 +FOM_DETF_ww: 0.6667924408734631 +FOM_gg: 879.9702423378347 +FOM_ww: 18.60417499318727 +SNR_3x2: 1437.9625939852149 +SNR_gg: 1436.6351264758905 +SNR_ww: 358.94351923152965 +counts: + 0: 584086 + 1: 978333 + 2: 1398855 + 3: 1212683 + 4: 4437235 +name: NeuralNetwork_5_griz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_5_riz_0.npy.yml new file mode 100644 index 00000000..5e185bc0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3020.905488148759 +FOM_DETF_3x2: 48.04630501140791 +FOM_DETF_gg: 7.8031765966845725 +FOM_DETF_ww: 0.6368444692016659 +FOM_gg: 776.569727746023 +FOM_ww: 21.760900719429422 +SNR_3x2: 1391.931637809173 +SNR_gg: 1388.7885826340846 +SNR_ww: 334.1094756634637 +counts: + 0: 2038596 + 1: 1409439 + 2: 1074887 + 3: 1063255 + 4: 3025015 +name: NeuralNetwork_5_riz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_7_griz_0.npy.yml new file mode 100644 index 00000000..e687f76c --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6450.8390303298465 +FOM_DETF_3x2: 122.19283151603942 +FOM_DETF_gg: 15.419885009669272 +FOM_DETF_ww: 0.6967296280801344 +FOM_gg: 1573.5133871522924 +FOM_ww: 22.460330516379297 +SNR_3x2: 1686.7982044095083 +SNR_gg: 1685.6625920753518 +SNR_ww: 358.9019698357406 +counts: + 0: 2857057 + 1: 509426 + 2: 637952 + 3: 788288 + 4: 1401015 + 5: 1579233 + 6: 838221 +name: NeuralNetwork_7_griz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_7_riz_0.npy.yml new file mode 100644 index 00000000..d217e96f --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4823.544340788093 +FOM_DETF_3x2: 57.82693797450806 +FOM_DETF_gg: 10.98187485226592 +FOM_DETF_ww: 0.6249465883342912 +FOM_gg: 1161.4854675811273 +FOM_ww: 22.440966124818893 +SNR_3x2: 1608.365601297303 +SNR_gg: 1605.4534471581412 +SNR_ww: 333.2169843587044 +counts: + 0: 726492 + 1: 897919 + 2: 938003 + 3: 693767 + 4: 1404334 + 5: 3072298 + 6: 878379 +name: NeuralNetwork_7_riz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_9_griz_0.npy.yml new file mode 100644 index 00000000..b084b763 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 11023.920380086987 +FOM_DETF_3x2: 140.00922699560152 +FOM_DETF_gg: 25.813368321720844 +FOM_DETF_ww: 0.9134032479879094 +FOM_gg: 2882.601217403597 +FOM_ww: 36.72509438027623 +SNR_3x2: 1842.8640196116248 +SNR_gg: 1841.656549094335 +SNR_ww: 350.4120879907775 +counts: + 0: 729696 + 1: 495528 + 2: 379977 + 3: 1658856 + 4: 697477 + 5: 688304 + 6: 1897731 + 7: 1217101 + 8: 846522 +name: NeuralNetwork_9_griz_2.npy diff --git a/paper/results/cosmodc2/metrics/NeuralNetwork2_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/NeuralNetwork2_9_riz_0.npy.yml new file mode 100644 index 00000000..5cd32c67 --- /dev/null +++ b/paper/results/cosmodc2/metrics/NeuralNetwork2_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 10025.713364322202 +FOM_DETF_3x2: 136.0724083230656 +FOM_DETF_gg: 22.351639361466255 +FOM_DETF_ww: 0.8773897596852994 +FOM_gg: 2440.7292411799267 +FOM_ww: 35.81894127425159 +SNR_3x2: 1744.221712360494 +SNR_gg: 1742.6182731417477 +SNR_ww: 353.128451175509 +counts: + 0: 596314 + 1: 1352176 + 2: 1535654 + 3: 1396812 + 4: 878700 + 5: 853041 + 6: 835926 + 7: 425458 + 8: 737111 +name: NeuralNetwork_9_riz_2.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_3_griz_0.npy.yml new file mode 100644 index 00000000..f9fb23d3 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 2002.5794158710826 +FOM_DETF_3x2: 50.096418642457486 +FOM_DETF_gg: 3.6072677627512495 +FOM_DETF_ww: 0.37584021442416093 +FOM_gg: 310.9887619929038 +FOM_ww: 12.592422510216299 +SNR_3x2: 1004.5831120931489 +SNR_gg: 994.3925273495998 +SNR_ww: 339.4832093290342 +counts: + 0: 2842810 + 1: 1329551 + 2: 4438831 +name: PCACluster_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_3_riz_0.npy.yml new file mode 100644 index 00000000..1e5c53c6 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1322.318337870831 +FOM_DETF_3x2: 29.487008678857723 +FOM_DETF_gg: 2.685981753650042 +FOM_DETF_ww: 0.2486376071488919 +FOM_gg: 241.27792509774542 +FOM_ww: 7.760726876362524 +SNR_3x2: 918.2219043551642 +SNR_gg: 908.2232657302332 +SNR_ww: 327.70306688231545 +counts: + 0: 4603037 + 1: 1506203 + 2: 2501952 +name: PCACluster_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_5_griz_0.npy.yml new file mode 100644 index 00000000..867b0686 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4754.210825260373 +FOM_DETF_3x2: 72.67125818956174 +FOM_DETF_gg: 9.749896514157406 +FOM_DETF_ww: 0.3421830178594021 +FOM_gg: 1117.1631632982426 +FOM_ww: 11.9772017457758 +SNR_3x2: 1046.9659909329423 +SNR_gg: 1036.919612999566 +SNR_ww: 334.1330816093867 +counts: + 0: 1036375 + 1: 2672286 + 2: 1298594 + 3: 3322503 + 4: 281434 +name: PCACluster_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_5_riz_0.npy.yml new file mode 100644 index 00000000..086fb8a4 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4473.330616875774 +FOM_DETF_3x2: 68.10382688059694 +FOM_DETF_gg: 9.201123288122291 +FOM_DETF_ww: 0.33010308904824676 +FOM_gg: 1014.9043000511781 +FOM_ww: 11.33788273653632 +SNR_3x2: 1070.7702518817935 +SNR_gg: 1063.1063251105923 +SNR_ww: 329.09682142741906 +counts: + 0: 238208 + 1: 3117286 + 2: 2044778 + 3: 421984 + 4: 2788936 +name: PCACluster_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_7_griz_0.npy.yml new file mode 100644 index 00000000..340a8c35 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6602.837324463316 +FOM_DETF_3x2: 90.78744201851653 +FOM_DETF_gg: 13.277738121824806 +FOM_DETF_ww: 0.5862108987862207 +FOM_gg: 1573.8854941906536 +FOM_ww: 21.61189035885175 +SNR_3x2: 1174.7382688881555 +SNR_gg: 1167.9227165761324 +SNR_ww: 341.20397920144745 +counts: + 0: 346298 + 1: 870236 + 2: 3846525 + 3: 709467 + 4: 1202337 + 5: 1473813 + 6: 162516 +name: PCACluster_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PCACluster_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PCACluster_7_riz_0.npy.yml new file mode 100644 index 00000000..74dcca77 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PCACluster_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5880.107664494 +FOM_DETF_3x2: 75.75875496922538 +FOM_DETF_gg: 11.458295223653025 +FOM_DETF_ww: 0.3836597128652315 +FOM_gg: 1293.5598381583466 +FOM_ww: 14.218454374455387 +SNR_3x2: 1181.3106778653173 +SNR_gg: 1174.5012920951817 +SNR_ww: 331.12213537353773 +counts: + 0: 401880 + 1: 2721676 + 2: 1016679 + 3: 922007 + 4: 926205 + 5: 399631 + 6: 2223114 +name: PCACluster_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_3_griz_0.npy.yml new file mode 100644 index 00000000..a4730738 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1204.6386298182015 +FOM_DETF_3x2: 42.945857748879256 +FOM_DETF_gg: 3.5614528975032265 +FOM_DETF_ww: 0.7913468414322886 +FOM_gg: 291.6190097479603 +FOM_ww: 27.619288651392967 +SNR_3x2: 1104.2190100530559 +SNR_gg: 1101.268452109377 +SNR_ww: 360.6859654336663 +counts: + 0: 2740359 + 1: 2677065 + 2: 3193768 +name: PQNLD_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_3_riz_0.npy.yml new file mode 100644 index 00000000..1cdf4bf9 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1371.4297426116011 +FOM_DETF_3x2: 39.49495492501597 +FOM_DETF_gg: 3.32909519565761 +FOM_DETF_ww: 0.5720719261926943 +FOM_gg: 296.3371813240233 +FOM_ww: 20.22762859651128 +SNR_3x2: 1068.9731340160943 +SNR_gg: 1065.4969844994184 +SNR_ww: 352.42900558364227 +counts: + 0: 2953456 + 1: 2883119 + 2: 2774617 +name: PQNLD_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_5_griz_0.npy.yml new file mode 100644 index 00000000..57cbb0ac --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3155.7403221287364 +FOM_DETF_3x2: 71.00590645359989 +FOM_DETF_gg: 9.856317877859587 +FOM_DETF_ww: 1.0542006111226716 +FOM_gg: 922.0182657208455 +FOM_ww: 44.35659585203889 +SNR_3x2: 1382.679814086563 +SNR_gg: 1380.945163616103 +SNR_ww: 365.8515065626132 +counts: + 0: 1865437 + 1: 1677952 + 2: 1631941 + 3: 1759157 + 4: 1676705 +name: PQNLD_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_5_riz_0.npy.yml new file mode 100644 index 00000000..f65555a0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3052.705127805954 +FOM_DETF_3x2: 60.513807406772685 +FOM_DETF_gg: 8.37855544387298 +FOM_DETF_ww: 0.7962846478930767 +FOM_gg: 827.7530598094969 +FOM_ww: 30.876852573820116 +SNR_3x2: 1310.578154422433 +SNR_gg: 1308.5183357931323 +SNR_ww: 356.75854590314975 +counts: + 0: 1836387 + 1: 1733639 + 2: 1772802 + 3: 1679526 + 4: 1588838 +name: PQNLD_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_7_griz_0.npy.yml new file mode 100644 index 00000000..626d870d --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6177.907269119474 +FOM_DETF_3x2: 105.85470424463804 +FOM_DETF_gg: 16.407686614462268 +FOM_DETF_ww: 1.1230956797702476 +FOM_gg: 1684.2297410819165 +FOM_ww: 49.87965853753013 +SNR_3x2: 1622.6068616923233 +SNR_gg: 1621.2782176500411 +SNR_ww: 367.3518727382188 +counts: + 0: 1322879 + 1: 1251272 + 2: 1133475 + 3: 1120530 + 4: 1174815 + 5: 1346654 + 6: 1261567 +name: PQNLD_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_7_riz_0.npy.yml new file mode 100644 index 00000000..693d7067 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5005.630813828246 +FOM_DETF_3x2: 77.67791917945678 +FOM_DETF_gg: 12.270298819520868 +FOM_DETF_ww: 0.8587189251944143 +FOM_gg: 1309.8662468150999 +FOM_ww: 34.974949063851646 +SNR_3x2: 1478.0192706760631 +SNR_gg: 1476.3103831777923 +SNR_ww: 358.17465581210166 +counts: + 0: 1442173 + 1: 1172661 + 2: 1226934 + 3: 1229058 + 4: 1204278 + 5: 1186010 + 6: 1150078 +name: PQNLD_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_9_griz_0.npy.yml new file mode 100644 index 00000000..9ea5bc43 --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9353.924410565707 +FOM_DETF_3x2: 133.84816769214018 +FOM_DETF_gg: 22.353131775729175 +FOM_DETF_ww: 1.1704934492563812 +FOM_gg: 2419.2084048706 +FOM_ww: 52.85532308252779 +SNR_3x2: 1802.5351039782906 +SNR_gg: 1801.3489603804649 +SNR_ww: 368.1736394977137 +counts: + 0: 986930 + 1: 1069915 + 2: 984269 + 3: 976323 + 4: 874728 + 5: 873620 + 6: 963410 + 7: 924548 + 8: 957449 +name: PQNLD_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/PQNLD_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/PQNLD_9_riz_0.npy.yml new file mode 100644 index 00000000..385ef50e --- /dev/null +++ b/paper/results/cosmodc2/metrics/PQNLD_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7666.612501895632 +FOM_DETF_3x2: 105.4405413804262 +FOM_DETF_gg: 16.812854074639482 +FOM_DETF_ww: 0.8780301627551844 +FOM_gg: 1869.4078735092858 +FOM_ww: 36.40603297081614 +SNR_3x2: 1585.0897530796447 +SNR_gg: 1583.4481629732975 +SNR_ww: 358.65988541092065 +counts: + 0: 1032133 + 1: 941758 + 2: 926444 + 3: 921819 + 4: 973929 + 5: 956634 + 6: 941721 + 7: 962044 + 8: 954710 +name: PQNLD_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_3_griz_0.npy.yml new file mode 100644 index 00000000..090e69dc --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1254.5825558193178 +FOM_DETF_3x2: 42.96961527898029 +FOM_DETF_gg: 3.5584511540895547 +FOM_DETF_ww: 0.8248640907590056 +FOM_gg: 294.30403131229576 +FOM_ww: 30.034141223477945 +SNR_3x2: 1100.0514397011218 +SNR_gg: 1096.8914390457676 +SNR_ww: 361.11871295813387 +counts: + 0: 2879077 + 1: 2840830 + 2: 2891285 +name: RandomForest_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_3_riz_0.npy.yml new file mode 100644 index 00000000..ae53bfdd --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1267.4873868011157 +FOM_DETF_3x2: 39.54198203161832 +FOM_DETF_gg: 3.670819675131418 +FOM_DETF_ww: 0.6764356140179525 +FOM_gg: 317.2712253573101 +FOM_ww: 23.545311161185303 +SNR_3x2: 1084.7445631779906 +SNR_gg: 1081.7773013774304 +SNR_ww: 351.716100042212 +counts: + 0: 2902928 + 1: 2868594 + 2: 2839670 +name: RandomForest_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_5_griz_0.npy.yml new file mode 100644 index 00000000..b1118ead --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3146.5919980785156 +FOM_DETF_3x2: 72.75629972313816 +FOM_DETF_gg: 10.02801501806916 +FOM_DETF_ww: 1.0567977221554474 +FOM_gg: 929.8596384478099 +FOM_ww: 44.476601822211315 +SNR_3x2: 1388.1552171967778 +SNR_gg: 1386.4553703165234 +SNR_ww: 365.84545990307083 +counts: + 0: 1790888 + 1: 1660045 + 2: 1721083 + 3: 1760155 + 4: 1679021 +name: RandomForest_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_5_riz_0.npy.yml new file mode 100644 index 00000000..050df79b --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2976.1297196695186 +FOM_DETF_3x2: 65.15538586550949 +FOM_DETF_gg: 9.374954920286966 +FOM_DETF_ww: 0.8789321670271133 +FOM_gg: 886.2576489778206 +FOM_ww: 34.90057067993053 +SNR_3x2: 1334.6366734934952 +SNR_gg: 1332.7074871732582 +SNR_ww: 355.0115128068027 +counts: + 0: 1853628 + 1: 1715451 + 2: 1634080 + 3: 1806177 + 4: 1601856 +name: RandomForest_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_7_griz_0.npy.yml new file mode 100644 index 00000000..ccb7a6f1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6370.504402346514 +FOM_DETF_3x2: 110.12387227202122 +FOM_DETF_gg: 16.99438497634763 +FOM_DETF_ww: 1.127904510953079 +FOM_gg: 1739.2500711616453 +FOM_ww: 50.09087298960714 +SNR_3x2: 1633.100178154371 +SNR_gg: 1631.788857605819 +SNR_ww: 367.3526572730199 +counts: + 0: 1229157 + 1: 1228102 + 2: 1238388 + 3: 1220423 + 4: 1235147 + 5: 1240998 + 6: 1218977 +name: RandomForest_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_7_riz_0.npy.yml new file mode 100644 index 00000000..7c90f303 --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5690.59677226757 +FOM_DETF_3x2: 93.2404913508094 +FOM_DETF_gg: 14.865382230674243 +FOM_DETF_ww: 0.9184594941242474 +FOM_gg: 1540.2273348170925 +FOM_ww: 38.395685814579956 +SNR_3x2: 1550.428433152427 +SNR_gg: 1548.7695503722487 +SNR_ww: 355.38355759136465 +counts: + 0: 1350565 + 1: 1114378 + 2: 1318994 + 3: 1170437 + 4: 1235165 + 5: 1230885 + 6: 1190768 +name: RandomForest_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_9_griz_0.npy.yml new file mode 100644 index 00000000..e9311709 --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9265.38359211895 +FOM_DETF_3x2: 136.45683372012363 +FOM_DETF_gg: 22.909242606029498 +FOM_DETF_ww: 1.1771077984318403 +FOM_gg: 2448.582206966842 +FOM_ww: 53.2186295741161 +SNR_3x2: 1825.0834803357454 +SNR_gg: 1823.92183196478 +SNR_ww: 368.11080289333955 +counts: + 0: 958125 + 1: 975481 + 2: 943395 + 3: 950870 + 4: 930523 + 5: 988607 + 6: 970407 + 7: 957915 + 8: 935869 +name: RandomForest_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/RandomForest_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/RandomForest_9_riz_0.npy.yml new file mode 100644 index 00000000..7b6886ec --- /dev/null +++ b/paper/results/cosmodc2/metrics/RandomForest_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8447.672948621901 +FOM_DETF_3x2: 118.54408798500214 +FOM_DETF_gg: 19.86152390294322 +FOM_DETF_ww: 0.9419741840649622 +FOM_gg: 2156.031420859195 +FOM_ww: 39.64295895424662 +SNR_3x2: 1689.178138824957 +SNR_gg: 1687.507342821898 +SNR_ww: 355.5603315288442 +counts: + 0: 1045135 + 1: 902405 + 2: 984706 + 3: 987330 + 4: 885185 + 5: 965858 + 6: 1010048 + 7: 873002 + 8: 957523 +name: RandomForest_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_3_griz_0.npy.yml new file mode 100644 index 00000000..942bb525 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 17.38211945736259 +FOM_DETF_3x2: 1.2273762185009003 +FOM_DETF_gg: 0.003025148257392036 +FOM_DETF_ww: 0.00011502619255783291 +FOM_gg: 0.5094935538980825 +FOM_ww: 0.012262644924460466 +SNR_3x2: 670.0523684816854 +SNR_gg: 646.3194238618072 +SNR_ww: 323.4641059260156 +counts: + 0: 2865071 + 1: 2872500 + 2: 2873621 +name: Random_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_3_riz_0.npy.yml new file mode 100644 index 00000000..6e3a162a --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 17.38211945736259 +FOM_DETF_3x2: 1.2273762185009003 +FOM_DETF_gg: 0.003025148257392036 +FOM_DETF_ww: 0.00011502619255783291 +FOM_gg: 0.5094935538980825 +FOM_ww: 0.012262644924460466 +SNR_3x2: 670.0523684816854 +SNR_gg: 646.3194238618072 +SNR_ww: 323.4641059260156 +counts: + 0: 2865071 + 1: 2872500 + 2: 2873621 +name: Random_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_5_griz_0.npy.yml new file mode 100644 index 00000000..7812cb79 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 17.463609515979243 +FOM_DETF_3x2: 1.2316678240363015 +FOM_DETF_gg: 0.0031757509379315195 +FOM_DETF_ww: 0.00011772567363150415 +FOM_gg: 0.5320269249765752 +FOM_ww: 0.012541458839056076 +SNR_3x2: 670.0532142125127 +SNR_gg: 646.3194673113373 +SNR_ww: 323.4641135396003 +counts: + 0: 1719441 + 1: 1724710 + 2: 1719900 + 3: 1725060 + 4: 1722081 +name: Random_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_5_riz_0.npy.yml new file mode 100644 index 00000000..7ee40d88 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 17.463609515979243 +FOM_DETF_3x2: 1.2316678240363015 +FOM_DETF_gg: 0.0031757509379315195 +FOM_DETF_ww: 0.00011772567363150415 +FOM_gg: 0.5320269249765752 +FOM_ww: 0.012541458839056076 +SNR_3x2: 670.0532142125127 +SNR_gg: 646.3194673113373 +SNR_ww: 323.4641135396003 +counts: + 0: 1719441 + 1: 1724710 + 2: 1719900 + 3: 1725060 + 4: 1722081 +name: Random_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_7_griz_0.npy.yml new file mode 100644 index 00000000..83973a5a --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 17.48005516323442 +FOM_DETF_3x2: 1.232505061638897 +FOM_DETF_gg: 0.0030578748721889785 +FOM_DETF_ww: 0.00011819762592985551 +FOM_gg: 0.515012727357723 +FOM_ww: 0.012567782610347055 +SNR_3x2: 670.0524195405751 +SNR_gg: 646.3194754538466 +SNR_ww: 323.4641351072976 +counts: + 0: 1227060 + 1: 1232390 + 2: 1234920 + 3: 1230942 + 4: 1227090 + 5: 1230510 + 6: 1228280 +name: Random_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_7_riz_0.npy.yml new file mode 100644 index 00000000..08e0fff3 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 17.48005516323442 +FOM_DETF_3x2: 1.232505061638897 +FOM_DETF_gg: 0.0030578748721889785 +FOM_DETF_ww: 0.00011819762592985551 +FOM_gg: 0.515012727357723 +FOM_ww: 0.012567782610347055 +SNR_3x2: 670.0524195405751 +SNR_gg: 646.3194754538466 +SNR_ww: 323.4641351072976 +counts: + 0: 1227060 + 1: 1232390 + 2: 1234920 + 3: 1230942 + 4: 1227090 + 5: 1230510 + 6: 1228280 +name: Random_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_9_griz_0.npy.yml new file mode 100644 index 00000000..6ad63710 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 17.684856970567072 +FOM_DETF_3x2: 1.2467497540860855 +FOM_DETF_gg: 0.0033601745328092087 +FOM_DETF_ww: 0.00012098739453132185 +FOM_gg: 0.5627274898853618 +FOM_ww: 0.012789452511013035 +SNR_3x2: 670.0532850593743 +SNR_gg: 646.3195134112743 +SNR_ww: 323.4641393885784 +counts: + 0: 954310 + 1: 956210 + 2: 954080 + 3: 958500 + 4: 955721 + 5: 960920 + 6: 958001 + 7: 959960 + 8: 953490 +name: Random_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/Random_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/Random_9_riz_0.npy.yml new file mode 100644 index 00000000..15e94b78 --- /dev/null +++ b/paper/results/cosmodc2/metrics/Random_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 17.684856970567072 +FOM_DETF_3x2: 1.2467497540860855 +FOM_DETF_gg: 0.0033601745328092087 +FOM_DETF_ww: 0.00012098739453132185 +FOM_gg: 0.5627274898853618 +FOM_ww: 0.012789452511013035 +SNR_3x2: 670.0532850593743 +SNR_gg: 646.3195134112743 +SNR_ww: 323.4641393885784 +counts: + 0: 954310 + 1: 956210 + 2: 954080 + 3: 958500 + 4: 955721 + 5: 960920 + 6: 958001 + 7: 959960 + 8: 953490 +name: Random_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_3_griz_0.npy.yml new file mode 100644 index 00000000..10360783 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1313.446048669491 +FOM_DETF_3x2: 42.24554490600188 +FOM_DETF_gg: 3.3126896364702656 +FOM_DETF_ww: 0.7722388307537368 +FOM_gg: 279.5995917250083 +FOM_ww: 28.787409569292276 +SNR_3x2: 1102.1009237967764 +SNR_gg: 1098.580300311551 +SNR_ww: 360.46958181068595 +counts: + 0: 3130524 + 1: 2424169 + 2: 3056499 +name: SimpleSOM_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_3_riz_0.npy.yml new file mode 100644 index 00000000..661fe423 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1375.616225295243 +FOM_DETF_3x2: 39.50607312429524 +FOM_DETF_gg: 3.3493583986855286 +FOM_DETF_ww: 0.5783968668580376 +FOM_gg: 298.5548675603706 +FOM_ww: 20.48104842065634 +SNR_3x2: 1067.3304762817327 +SNR_gg: 1063.85821170374 +SNR_ww: 352.4263346730564 +counts: + 0: 2973267 + 1: 2921813 + 2: 2716112 +name: SimpleSOM_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_5_griz_0.npy.yml new file mode 100644 index 00000000..039a91bf --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3250.2637077523364 +FOM_DETF_3x2: 73.21695022661136 +FOM_DETF_gg: 10.222249739885017 +FOM_DETF_ww: 1.0676015759173587 +FOM_gg: 959.1825085288665 +FOM_ww: 45.40715122637216 +SNR_3x2: 1379.7640547528192 +SNR_gg: 1378.053512332349 +SNR_ww: 366.14163072884696 +counts: + 0: 1799216 + 1: 1756006 + 2: 1801990 + 3: 1715124 + 4: 1538856 +name: SimpleSOM_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_5_riz_0.npy.yml new file mode 100644 index 00000000..157f7b30 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3061.5591503840164 +FOM_DETF_3x2: 59.87675200731557 +FOM_DETF_gg: 8.279930450159302 +FOM_DETF_ww: 0.7913065060300012 +FOM_gg: 821.6691947501487 +FOM_ww: 30.69278509065315 +SNR_3x2: 1309.3449702466485 +SNR_gg: 1307.273102151879 +SNR_ww: 356.6400655907914 +counts: + 0: 1877930 + 1: 1664167 + 2: 1818288 + 3: 1626220 + 4: 1624587 +name: SimpleSOM_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_7_griz_0.npy.yml new file mode 100644 index 00000000..3a1af4a0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6417.485961841575 +FOM_DETF_3x2: 108.01556552814354 +FOM_DETF_gg: 16.796664130848868 +FOM_DETF_ww: 1.1380366489036047 +FOM_gg: 1746.288371598234 +FOM_ww: 50.662799978766564 +SNR_3x2: 1602.278319019214 +SNR_gg: 1600.9221502752212 +SNR_ww: 367.50792817777153 +counts: + 0: 1294601 + 1: 1226361 + 2: 1298605 + 3: 1295897 + 4: 1209438 + 5: 1228331 + 6: 1057959 +name: SimpleSOM_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_7_riz_0.npy.yml new file mode 100644 index 00000000..117ddea7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5017.488766705653 +FOM_DETF_3x2: 77.86077764981205 +FOM_DETF_gg: 12.299469391298913 +FOM_DETF_ww: 0.8597684543538224 +FOM_gg: 1312.4970116056907 +FOM_ww: 35.072492799497276 +SNR_3x2: 1481.9620186474692 +SNR_gg: 1480.2539210367943 +SNR_ww: 358.1665164962819 +counts: + 0: 1433152 + 1: 1148387 + 2: 1203133 + 3: 1323784 + 4: 1182711 + 5: 1150261 + 6: 1169764 +name: SimpleSOM_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_9_griz_0.npy.yml new file mode 100644 index 00000000..d83d6941 --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9279.755894101538 +FOM_DETF_3x2: 134.8081719821798 +FOM_DETF_gg: 22.64079951223419 +FOM_DETF_ww: 1.186736866696709 +FOM_gg: 2446.687766078121 +FOM_ww: 53.836224343516726 +SNR_3x2: 1789.7232406644428 +SNR_gg: 1788.5151245195427 +SNR_ww: 368.3857250803792 +counts: + 0: 1014524 + 1: 971049 + 2: 980672 + 3: 1001464 + 4: 1009773 + 5: 925428 + 6: 981990 + 7: 946840 + 8: 779452 +name: SimpleSOM_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/SimpleSOM_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/SimpleSOM_9_riz_0.npy.yml new file mode 100644 index 00000000..f09e684c --- /dev/null +++ b/paper/results/cosmodc2/metrics/SimpleSOM_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 7244.535654547413 +FOM_DETF_3x2: 98.46805953109714 +FOM_DETF_gg: 16.04008649295311 +FOM_DETF_ww: 0.883228762511691 +FOM_gg: 1785.8436203601475 +FOM_ww: 36.748078662069894 +SNR_3x2: 1574.4463732161862 +SNR_gg: 1572.8162844891478 +SNR_ww: 358.73151630996557 +counts: + 0: 1155696 + 1: 905653 + 2: 911542 + 3: 955252 + 4: 1037625 + 5: 929119 + 6: 905697 + 7: 893328 + 8: 917280 +name: SimpleSOM_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_3_griz_0.npy.yml new file mode 100644 index 00000000..4b845848 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1325.8709320461853 +FOM_DETF_3x2: 44.145300449897725 +FOM_DETF_gg: 4.126170559178718 +FOM_DETF_ww: 0.7881028303560117 +FOM_gg: 348.81225458931067 +FOM_ww: 27.606801963537166 +SNR_3x2: 1098.915692220499 +SNR_gg: 1095.396022827042 +SNR_ww: 359.5358503116753 +counts: + 0: 2716678 + 1: 2618849 + 2: 2784345 + 3: 491320 +name: TCN_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_3_riz_0.npy.yml new file mode 100644 index 00000000..c3e15262 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1371.0105036153616 +FOM_DETF_3x2: 39.955411084369054 +FOM_DETF_gg: 3.9816699222955094 +FOM_DETF_ww: 0.6942034548610132 +FOM_gg: 355.8152225395837 +FOM_ww: 23.58914546275782 +SNR_3x2: 1091.6778837184272 +SNR_gg: 1088.663250807679 +SNR_ww: 351.61610682654367 +counts: + 0: 2918205 + 1: 2941458 + 2: 2688104 + 3: 63425 +name: TCN_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_5_griz_0.npy.yml new file mode 100644 index 00000000..ef105f36 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3184.1741523655005 +FOM_DETF_3x2: 72.77970556724073 +FOM_DETF_gg: 10.22393212127641 +FOM_DETF_ww: 1.005826736989507 +FOM_gg: 953.8184700173654 +FOM_ww: 41.23102650604508 +SNR_3x2: 1379.5466326483527 +SNR_gg: 1377.811389090331 +SNR_ww: 363.9371096305026 +counts: + 0: 1772364 + 1: 1517413 + 2: 1593793 + 3: 1634904 + 4: 1601398 + 5: 491320 +name: TCN_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_5_riz_0.npy.yml new file mode 100644 index 00000000..adbaf837 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 2986.618712015713 +FOM_DETF_3x2: 65.26023238693382 +FOM_DETF_gg: 9.378870123042578 +FOM_DETF_ww: 0.9044209940219243 +FOM_gg: 886.891911346354 +FOM_ww: 36.007381239134695 +SNR_3x2: 1324.853964029417 +SNR_gg: 1322.8575400834632 +SNR_ww: 355.65654378532196 +counts: + 0: 2060170 + 1: 1564266 + 2: 1654799 + 3: 2019140 + 4: 1249392 + 5: 63425 +name: TCN_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_7_griz_0.npy.yml new file mode 100644 index 00000000..c63a4d89 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 6267.892654720675 +FOM_DETF_3x2: 107.95414861974604 +FOM_DETF_gg: 16.730798478964964 +FOM_DETF_ww: 1.0698688948637856 +FOM_gg: 1716.2559003591768 +FOM_ww: 46.2801493674531 +SNR_3x2: 1624.5482570353452 +SNR_gg: 1623.242887871835 +SNR_ww: 365.19149467319886 +counts: + 0: 1253028 + 1: 1096242 + 2: 1124253 + 3: 1158242 + 4: 1281331 + 5: 1017390 + 6: 1189386 + 7: 491320 +name: TCN_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_7_riz_0.npy.yml new file mode 100644 index 00000000..ce61c718 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 5592.529931720378 +FOM_DETF_3x2: 90.92282087521016 +FOM_DETF_gg: 14.65156242600233 +FOM_DETF_ww: 0.9181869758954252 +FOM_gg: 1522.428944212189 +FOM_ww: 38.0054050434732 +SNR_3x2: 1553.8490480590524 +SNR_gg: 1552.187358017296 +SNR_ww: 355.5177961424233 +counts: + 0: 1626978 + 1: 1033131 + 2: 1446097 + 3: 1028159 + 4: 1176201 + 5: 1275036 + 6: 962165 + 7: 63425 +name: TCN_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_9_griz_0.npy.yml new file mode 100644 index 00000000..23a2d9f8 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 9100.152095096759 +FOM_DETF_3x2: 133.99472714325069 +FOM_DETF_gg: 22.47311045524309 +FOM_DETF_ww: 1.1163950646182188 +FOM_gg: 2401.0738583167276 +FOM_ww: 49.3973279754101 +SNR_3x2: 1815.47522400854 +SNR_gg: 1814.3221663295453 +SNR_ww: 366.1504418779367 +counts: + 0: 942306 + 1: 883211 + 2: 875732 + 3: 942613 + 4: 903100 + 5: 910119 + 6: 901781 + 7: 865238 + 8: 895772 + 9: 491320 +name: TCN_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/TCN_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TCN_9_riz_0.npy.yml new file mode 100644 index 00000000..d83385fe --- /dev/null +++ b/paper/results/cosmodc2/metrics/TCN_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 7955.546801692584 +FOM_DETF_3x2: 110.54348787401095 +FOM_DETF_gg: 18.935116679351303 +FOM_DETF_ww: 0.9310820263810802 +FOM_gg: 2055.395293494349 +FOM_ww: 38.70417469998384 +SNR_3x2: 1694.6846371880001 +SNR_gg: 1693.0786060449775 +SNR_ww: 355.3085244854449 +counts: + 0: 1320986 + 1: 529019 + 2: 1273656 + 3: 941953 + 4: 775341 + 5: 846480 + 6: 1000270 + 7: 812214 + 8: 1047848 + 9: 63425 +name: TCN_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_griz_0.npy.yml new file mode 100644 index 00000000..2dd40f8e --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1258.3856410225774 +FOM_DETF_3x2: 43.01748906563448 +FOM_DETF_gg: 3.5729810573137644 +FOM_DETF_ww: 0.8200831035043503 +FOM_gg: 296.005391712518 +FOM_ww: 29.713795243428816 +SNR_3x2: 1099.0231599907413 +SNR_gg: 1095.9046889622552 +SNR_ww: 360.9047714235073 +counts: + 0: 2869766 + 1: 2851169 + 2: 2890257 +name: TensorFlow_FFNN_3_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_riz_0.npy.yml new file mode 100644 index 00000000..a382a8d5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1269.756849526257 +FOM_DETF_3x2: 39.00499322184695 +FOM_DETF_gg: 3.6633788840300094 +FOM_DETF_ww: 0.6648135410657454 +FOM_gg: 317.89835018750586 +FOM_ww: 22.64934788139309 +SNR_3x2: 1084.4667823469877 +SNR_gg: 1081.2977294621 +SNR_ww: 351.12858267307104 +counts: + 0: 2941820 + 1: 2874208 + 2: 2795164 +name: TensorFlow_FFNN_3_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_griz_0.npy.yml new file mode 100644 index 00000000..8ec0f9a5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3132.602407337819 +FOM_DETF_3x2: 71.95010006280128 +FOM_DETF_gg: 9.958355057798693 +FOM_DETF_ww: 1.043961593463529 +FOM_gg: 923.6717136137684 +FOM_ww: 43.42742314869309 +SNR_3x2: 1379.6498413716772 +SNR_gg: 1377.9312220723618 +SNR_ww: 365.2932857764601 +counts: + 0: 1830652 + 1: 1612434 + 2: 1763861 + 3: 1763568 + 4: 1640677 +name: TensorFlow_FFNN_5_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_riz_0.npy.yml new file mode 100644 index 00000000..8451b214 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2855.686656514592 +FOM_DETF_3x2: 64.31056943526164 +FOM_DETF_gg: 9.16489182509557 +FOM_DETF_ww: 0.8752497342889164 +FOM_gg: 856.1691801836677 +FOM_ww: 34.43240669909444 +SNR_3x2: 1310.6925851578908 +SNR_gg: 1308.6094440985837 +SNR_ww: 354.5697069763784 +counts: + 0: 1996825 + 1: 1689140 + 2: 1593402 + 3: 1989417 + 4: 1342408 +name: TensorFlow_FFNN_5_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_griz_0.npy.yml new file mode 100644 index 00000000..4fd767a6 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6547.058808125693 +FOM_DETF_3x2: 112.34047213345409 +FOM_DETF_gg: 17.249359784497113 +FOM_DETF_ww: 1.1036635035869775 +FOM_gg: 1776.1682755781471 +FOM_ww: 48.25467233274503 +SNR_3x2: 1624.9360475650826 +SNR_gg: 1623.6236479086926 +SNR_ww: 366.7345702001939 +counts: + 0: 1200256 + 1: 1250556 + 2: 1199985 + 3: 1246315 + 4: 1256008 + 5: 1258697 + 6: 1199375 +name: TensorFlow_FFNN_7_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_riz_0.npy.yml new file mode 100644 index 00000000..e89a387f --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5559.658512089409 +FOM_DETF_3x2: 90.2644071871453 +FOM_DETF_gg: 14.361545502393904 +FOM_DETF_ww: 0.8979637274430943 +FOM_gg: 1499.8811718031952 +FOM_ww: 36.656306516175235 +SNR_3x2: 1535.9861601197688 +SNR_gg: 1534.3032961404297 +SNR_ww: 354.8476380089279 +counts: + 0: 1404111 + 1: 1129498 + 2: 1432192 + 3: 1036895 + 4: 1243789 + 5: 1168022 + 6: 1196685 +name: TensorFlow_FFNN_7_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_griz_0.npy.yml new file mode 100644 index 00000000..2e24e3c0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9332.888200880736 +FOM_DETF_3x2: 137.19132263862974 +FOM_DETF_gg: 22.662610547837183 +FOM_DETF_ww: 1.1477120705843287 +FOM_gg: 2435.6410636962846 +FOM_ww: 50.91333899589714 +SNR_3x2: 1799.821243733528 +SNR_gg: 1798.647204152973 +SNR_ww: 367.3289288024944 +counts: + 0: 920686 + 1: 1036991 + 2: 905906 + 3: 944544 + 4: 1002305 + 5: 927214 + 6: 1084907 + 7: 790238 + 8: 998401 +name: TensorFlow_FFNN_9_griz_1.npy diff --git a/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_riz_0.npy.yml new file mode 100644 index 00000000..be72821f --- /dev/null +++ b/paper/results/cosmodc2/metrics/TensorFlow_FFNN_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8169.978518695548 +FOM_DETF_3x2: 114.73770781566729 +FOM_DETF_gg: 18.988869985132315 +FOM_DETF_ww: 0.9181726797852426 +FOM_gg: 2063.978522705226 +FOM_ww: 37.72835982759823 +SNR_3x2: 1672.992306845776 +SNR_gg: 1671.289005612394 +SNR_ww: 355.1697141338568 +counts: + 0: 1062874 + 1: 912906 + 2: 1131963 + 3: 974141 + 4: 765732 + 5: 957176 + 6: 934350 + 7: 934419 + 8: 937631 +name: TensorFlow_FFNN_9_riz_1.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_3_griz_0.npy.yml new file mode 100644 index 00000000..f784ae3f --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1258.1221680432616 +FOM_DETF_3x2: 43.11162872127416 +FOM_DETF_gg: 3.5938081561073205 +FOM_DETF_ww: 0.820832773057201 +FOM_gg: 297.9350496252242 +FOM_ww: 29.774188772359157 +SNR_3x2: 1098.710372568099 +SNR_gg: 1095.658261182328 +SNR_ww: 360.96686613063923 +counts: + 0: 2870446 + 1: 2870378 + 2: 2870368 +name: UTOPIA_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_3_riz_0.npy.yml new file mode 100644 index 00000000..302ae8a1 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1261.6581240840112 +FOM_DETF_3x2: 38.989528928298974 +FOM_DETF_gg: 3.7242231168400273 +FOM_DETF_ww: 0.6378185069709547 +FOM_gg: 323.8793960024323 +FOM_ww: 22.049289062144382 +SNR_3x2: 1078.6407123542529 +SNR_gg: 1075.675145794091 +SNR_ww: 349.6185108797548 +counts: + 0: 2870428 + 1: 2870384 + 2: 2870380 +name: UTOPIA_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_5_griz_0.npy.yml new file mode 100644 index 00000000..7d72d18a --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3226.7687591346767 +FOM_DETF_3x2: 74.00025765161858 +FOM_DETF_gg: 10.154716970297653 +FOM_DETF_ww: 1.030612964908666 +FOM_gg: 950.1118240870254 +FOM_ww: 43.24327496131083 +SNR_3x2: 1383.021500303172 +SNR_gg: 1381.372245922882 +SNR_ww: 365.2889006261334 +counts: + 0: 1722316 + 1: 1722224 + 2: 1722217 + 3: 1722229 + 4: 1722206 +name: UTOPIA_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_5_riz_0.npy.yml new file mode 100644 index 00000000..8c2ede00 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3022.7497294032764 +FOM_DETF_3x2: 63.721691232674466 +FOM_DETF_gg: 9.18937178798619 +FOM_DETF_ww: 0.7995146985356812 +FOM_gg: 886.9644728847942 +FOM_ww: 31.08341517308914 +SNR_3x2: 1308.8861537439618 +SNR_gg: 1306.8566855578247 +SNR_ww: 352.05831666637346 +counts: + 0: 1722291 + 1: 1722233 + 2: 1722217 + 3: 1722231 + 4: 1722220 +name: UTOPIA_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_7_griz_0.npy.yml new file mode 100644 index 00000000..4bb8abc5 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6540.459075241295 +FOM_DETF_3x2: 112.81159136238324 +FOM_DETF_gg: 17.184282577911155 +FOM_DETF_ww: 1.1183071657194077 +FOM_gg: 1764.4803086973063 +FOM_ww: 49.640611640491336 +SNR_3x2: 1621.6292328499885 +SNR_gg: 1620.291800769638 +SNR_ww: 367.04486323313233 +counts: + 0: 1230277 + 1: 1230151 + 2: 1230157 + 3: 1230156 + 4: 1230151 + 5: 1230159 + 6: 1230141 +name: UTOPIA_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_7_riz_0.npy.yml new file mode 100644 index 00000000..67649025 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5627.884999344268 +FOM_DETF_3x2: 90.80943557970616 +FOM_DETF_gg: 14.242391726501891 +FOM_DETF_ww: 0.8558781658270336 +FOM_gg: 1486.2175835182318 +FOM_ww: 35.10846591761345 +SNR_3x2: 1499.9100898757274 +SNR_gg: 1497.9863391488182 +SNR_ww: 352.7421571076664 +counts: + 0: 1230248 + 1: 1230157 + 2: 1230162 + 3: 1230160 + 4: 1230157 + 5: 1230158 + 6: 1230150 +name: UTOPIA_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_9_griz_0.npy.yml new file mode 100644 index 00000000..4f013025 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9537.213605781282 +FOM_DETF_3x2: 139.32101950994868 +FOM_DETF_gg: 23.088841527746602 +FOM_DETF_ww: 1.1594487855078013 +FOM_gg: 2481.192362416541 +FOM_ww: 52.327396393817615 +SNR_3x2: 1808.6373533759443 +SNR_gg: 1807.4412080479333 +SNR_ww: 367.64870935035447 +counts: + 0: 956912 + 1: 956785 + 2: 956782 + 3: 956790 + 4: 956786 + 5: 956789 + 6: 956788 + 7: 956789 + 8: 956771 +name: UTOPIA_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/UTOPIA_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/UTOPIA_9_riz_0.npy.yml new file mode 100644 index 00000000..110fe509 --- /dev/null +++ b/paper/results/cosmodc2/metrics/UTOPIA_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8148.840301215002 +FOM_DETF_3x2: 112.24846086416433 +FOM_DETF_gg: 18.466020669644738 +FOM_DETF_ww: 0.8796245301547753 +FOM_gg: 2022.4960350662775 +FOM_ww: 36.26826202844307 +SNR_3x2: 1614.4012606835558 +SNR_gg: 1612.389951230373 +SNR_ww: 353.2085513945343 +counts: + 0: 956900 + 1: 956785 + 2: 956793 + 3: 956793 + 4: 956778 + 5: 956789 + 6: 956789 + 7: 956786 + 8: 956779 +name: UTOPIA_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_3_griz_0.npy.yml new file mode 100644 index 00000000..31e52709 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1157.2550779637616 +FOM_DETF_3x2: 77.63243499644722 +FOM_DETF_gg: 4.785720680178472 +FOM_DETF_ww: 0.24626027432512917 +FOM_gg: 372.3121360942823 +FOM_ww: 4.017731289162191 +SNR_3x2: 1073.6011258721155 +SNR_gg: 1071.3145275995535 +SNR_ww: 343.7914371439896 +counts: + 0: 491320 + 1: 2426794 + 2: 5232745 + 3: 460333 +name: ZotBin_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_3_riz_0.npy.yml new file mode 100644 index 00000000..2898fdc7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 841.1169371652318 +FOM_DETF_3x2: 64.79901030261045 +FOM_DETF_gg: 3.6954432277753724 +FOM_DETF_ww: 0.2660244049381587 +FOM_gg: 250.08040905467755 +FOM_ww: 4.787742562018461 +SNR_3x2: 989.9722058668981 +SNR_gg: 986.3400690782427 +SNR_ww: 334.4002472219192 +counts: + -1: 0 + 0: 2021896 + 1: 5988587 + 2: 600709 +name: ZotBin_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_5_griz_0.npy.yml new file mode 100644 index 00000000..0875161b --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3693.7284727435413 +FOM_DETF_3x2: 119.95476720147713 +FOM_DETF_gg: 14.5709658848259 +FOM_DETF_ww: 0.799436260589871 +FOM_gg: 1252.5533628613384 +FOM_ww: 27.31104833064226 +SNR_3x2: 1304.0165680754462 +SNR_gg: 1302.214755251284 +SNR_ww: 353.92627619578815 +counts: + 0: 491320 + 1: 1708228 + 2: 3592217 + 3: 1548632 + 4: 234877 + 5: 1035918 +name: ZotBin_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_5_riz_0.npy.yml new file mode 100644 index 00000000..30b4ef36 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3456.176374229378 +FOM_DETF_3x2: 106.43232502117344 +FOM_DETF_gg: 12.970226410074961 +FOM_DETF_ww: 0.7136091950917328 +FOM_gg: 1108.2179911510846 +FOM_ww: 24.77052311125595 +SNR_3x2: 1224.9280657215697 +SNR_gg: 1222.4376712509804 +SNR_ww: 346.602269081114 +counts: + -1: 0 + 0: 1472427 + 1: 2108574 + 2: 1455090 + 3: 3321423 + 4: 253678 +name: ZotBin_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_7_griz_0.npy.yml new file mode 100644 index 00000000..ce05ad2d --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 6499.672019922776 +FOM_DETF_3x2: 141.7516754474678 +FOM_DETF_gg: 21.47845958803442 +FOM_DETF_ww: 0.9252765265180913 +FOM_gg: 2103.7720739715105 +FOM_ww: 35.88951853395655 +SNR_3x2: 1542.5712377941413 +SNR_gg: 1541.0599319918654 +SNR_ww: 356.97001423878686 +counts: + 0: 491320 + 1: 1052300 + 2: 1347210 + 3: 1180991 + 4: 201126 + 5: 691588 + 6: 2388985 + 7: 1257672 +name: ZotBin_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_7_riz_0.npy.yml new file mode 100644 index 00000000..2e243e6b --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 6887.435695075916 +FOM_DETF_3x2: 121.82082877428385 +FOM_DETF_gg: 18.12760545238722 +FOM_DETF_ww: 0.7907709176377035 +FOM_gg: 1876.296812546644 +FOM_ww: 30.859744111550803 +SNR_3x2: 1454.3988192155377 +SNR_gg: 1452.2784948403903 +SNR_ww: 349.35405224670313 +counts: + -1: 0 + 0: 1576509 + 1: 1831864 + 2: 1146589 + 3: 1356073 + 4: 252009 + 5: 1037048 + 6: 1411100 +name: ZotBin_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_9_griz_0.npy.yml new file mode 100644 index 00000000..4ee170f6 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 9546.893169619601 +FOM_DETF_3x2: 154.6921906698545 +FOM_DETF_gg: 26.24515661042689 +FOM_DETF_ww: 0.9475184794064982 +FOM_gg: 2787.454087960021 +FOM_ww: 38.142878687822424 +SNR_3x2: 1741.8135234618223 +SNR_gg: 1740.4978013837679 +SNR_ww: 357.9389859494306 +counts: + 0: 491320 + 1: 885792 + 2: 1257909 + 3: 1252206 + 4: 1470488 + 5: 679024 + 6: 653555 + 7: 870551 + 8: 199982 + 9: 850365 +name: ZotBin_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotBin_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotBin_9_riz_0.npy.yml new file mode 100644 index 00000000..59ebece0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotBin_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 8013.256065557642 +FOM_DETF_3x2: 135.3287129508001 +FOM_DETF_gg: 23.250729951527287 +FOM_DETF_ww: 0.7446040354117153 +FOM_gg: 2449.0707997038467 +FOM_ww: 29.08088634421981 +SNR_3x2: 1562.2280309860837 +SNR_gg: 1560.2414975112597 +SNR_ww: 350.0442123599155 +counts: + -1: 0 + 0: 1194231 + 1: 768561 + 2: 851864 + 3: 1240080 + 4: 1562678 + 5: 86119 + 6: 325260 + 7: 1503125 + 8: 1079274 +name: ZotBin_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_3_griz_0.npy.yml new file mode 100644 index 00000000..6e3d1c40 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_3_griz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 1208.199058548499 +FOM_DETF_3x2: 83.67068925702581 +FOM_DETF_gg: 5.533225385795406 +FOM_DETF_ww: 0.15570443491587663 +FOM_gg: 413.0458990148558 +FOM_ww: 2.314731966515432 +SNR_3x2: 1083.4653944563875 +SNR_gg: 1081.457797926827 +SNR_ww: 348.31873437240546 +counts: + 0: 491320 + 1: 2397496 + 2: 278109 + 3: 5444267 +name: ZotNet_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_3_riz_0.npy.yml new file mode 100644 index 00000000..c3417ff4 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_3_riz_0.npy.yml @@ -0,0 +1,15 @@ +FOM_3x2: 844.5871974158014 +FOM_DETF_3x2: 73.56660111522348 +FOM_DETF_gg: 4.7101559588769675 +FOM_DETF_ww: 0.15084259852327656 +FOM_gg: 287.41362945940887 +FOM_ww: 2.205888454507972 +SNR_3x2: 1006.1633097672253 +SNR_gg: 1003.2133882261369 +SNR_ww: 340.1984624692151 +counts: + -1: 0 + 0: 308595 + 1: 2148281 + 2: 6154316 +name: ZotNet_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_5_griz_0.npy.yml new file mode 100644 index 00000000..2510f960 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_5_griz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 4128.602307583205 +FOM_DETF_3x2: 128.53662589850072 +FOM_DETF_gg: 16.225350208815456 +FOM_DETF_ww: 0.9202815879644515 +FOM_gg: 1378.8891995272295 +FOM_ww: 33.167177993249084 +SNR_3x2: 1324.6373756549585 +SNR_gg: 1322.9875212533327 +SNR_ww: 359.95072063855844 +counts: + 0: 491320 + 1: 3535160 + 2: 1869136 + 3: 1396305 + 4: 1082701 + 5: 236570 +name: ZotNet_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_5_riz_0.npy.yml new file mode 100644 index 00000000..98d2707d --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_5_riz_0.npy.yml @@ -0,0 +1,17 @@ +FOM_3x2: 3816.65799228711 +FOM_DETF_3x2: 111.20212712887354 +FOM_DETF_gg: 14.192088939009446 +FOM_DETF_ww: 0.8134595304506899 +FOM_gg: 1219.5081420857991 +FOM_ww: 29.885248135599156 +SNR_3x2: 1240.4805963203073 +SNR_gg: 1238.0019337494798 +SNR_ww: 350.3643692750285 +counts: + -1: 0 + 0: 282418 + 1: 2505465 + 2: 1083549 + 3: 1745313 + 4: 2994447 +name: ZotNet_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_7_griz_0.npy.yml new file mode 100644 index 00000000..4efbf71b --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_7_griz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 9040.709256309987 +FOM_DETF_3x2: 150.10909496777737 +FOM_DETF_gg: 24.281993267751016 +FOM_DETF_ww: 1.0305949300779695 +FOM_gg: 2699.824168079103 +FOM_ww: 42.31892832821281 +SNR_3x2: 1486.1376714774979 +SNR_gg: 1484.5806617273086 +SNR_ww: 362.7994434909284 +counts: + 0: 491320 + 1: 399599 + 2: 180881 + 3: 1480640 + 4: 972359 + 5: 2692647 + 6: 1750633 + 7: 643113 +name: ZotNet_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_7_riz_0.npy.yml new file mode 100644 index 00000000..a2033ed2 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_7_riz_0.npy.yml @@ -0,0 +1,19 @@ +FOM_3x2: 5569.308722679769 +FOM_DETF_3x2: 131.78451505046058 +FOM_DETF_gg: 21.223137457862308 +FOM_DETF_ww: 0.855901169152661 +FOM_gg: 1992.485714803553 +FOM_ww: 33.11602157432037 +SNR_3x2: 1429.4460223378699 +SNR_gg: 1427.4491225698634 +SNR_ww: 352.2086489812598 +counts: + -1: 0 + 0: 1305992 + 1: 1750929 + 2: 32317 + 3: 522371 + 4: 2111348 + 5: 1890301 + 6: 997934 +name: ZotNet_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_9_griz_0.npy.yml new file mode 100644 index 00000000..570c8851 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_9_griz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 9226.34538247677 +FOM_DETF_3x2: 167.19451938193725 +FOM_DETF_gg: 31.439877668387513 +FOM_DETF_ww: 1.049009702110344 +FOM_gg: 3278.8536952501236 +FOM_ww: 43.025618646632054 +SNR_3x2: 1733.8975676941013 +SNR_gg: 1732.6332759386478 +SNR_ww: 363.13842031832564 +counts: + 0: 491320 + 1: 255467 + 2: 52712 + 3: 2109554 + 4: 665634 + 5: 1141907 + 6: 817433 + 7: 1023982 + 8: 1146397 + 9: 906786 +name: ZotNet_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/ZotNet_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/ZotNet_9_riz_0.npy.yml new file mode 100644 index 00000000..63e12b50 --- /dev/null +++ b/paper/results/cosmodc2/metrics/ZotNet_9_riz_0.npy.yml @@ -0,0 +1,21 @@ +FOM_3x2: 8150.779287489294 +FOM_DETF_3x2: 145.87915596168293 +FOM_DETF_gg: 25.000762003411182 +FOM_DETF_ww: 0.8809447035253717 +FOM_gg: 2604.3503968828754 +FOM_ww: 34.56950946953518 +SNR_3x2: 1575.8009517190555 +SNR_gg: 1574.0337670849976 +SNR_ww: 354.27817101844795 +counts: + -1: 0 + 0: 964967 + 1: 2192167 + 2: 68356 + 3: 1711145 + 4: 964728 + 5: 926246 + 6: 1087990 + 7: 219225 + 8: 476368 +name: ZotNet_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_3_griz_0.npy.yml new file mode 100644 index 00000000..53be990a --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1622.1462846753373 +FOM_DETF_3x2: 42.134943042284696 +FOM_DETF_gg: 4.61556615779079 +FOM_DETF_ww: 0.8951554786746012 +FOM_gg: 426.09691484499126 +FOM_ww: 31.177510828916454 +SNR_3x2: 1021.300723041234 +SNR_gg: 1017.9792279372244 +SNR_ww: 358.77328963003663 +counts: + 0: 2514100 + 1: 5157661 + 2: 939431 +name: funbins_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_3_riz_0.npy.yml new file mode 100644 index 00000000..00604971 --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1186.7645569679232 +FOM_DETF_3x2: 36.83851704519878 +FOM_DETF_gg: 4.258755026202902 +FOM_DETF_ww: 0.7025124393791676 +FOM_gg: 339.04881718400156 +FOM_ww: 23.25721706977677 +SNR_3x2: 983.5267808785244 +SNR_gg: 980.0824273490707 +SNR_ww: 347.52708735337967 +counts: + 0: 2549342 + 1: 5161888 + 2: 899962 +name: funbins_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_5_griz_0.npy.yml new file mode 100644 index 00000000..d87fd64a --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 5125.153356596402 +FOM_DETF_3x2: 100.4281394629387 +FOM_DETF_gg: 14.44819765817397 +FOM_DETF_ww: 1.0343138349246077 +FOM_gg: 1530.6032005733946 +FOM_ww: 42.99234194224257 +SNR_3x2: 1267.463302305958 +SNR_gg: 1265.5272551231644 +SNR_ww: 364.6117957637797 +counts: + 0: 940088 + 1: 2572067 + 2: 3531104 + 3: 1294568 + 4: 273365 +name: funbins_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_5_riz_0.npy.yml new file mode 100644 index 00000000..421aa79c --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 4158.541883441358 +FOM_DETF_3x2: 82.51043238641404 +FOM_DETF_gg: 11.766825336232264 +FOM_DETF_ww: 0.8074724787689321 +FOM_gg: 1236.522084915849 +FOM_ww: 31.628172029767413 +SNR_3x2: 1191.9579274218972 +SNR_gg: 1189.6326276893328 +SNR_ww: 352.76064624404785 +counts: + 0: 986974 + 1: 2605910 + 2: 3480311 + 3: 1261134 + 4: 276863 +name: funbins_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_7_griz_0.npy.yml new file mode 100644 index 00000000..2a8cb007 --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 8778.30392371365 +FOM_DETF_3x2: 142.4839680301932 +FOM_DETF_gg: 23.014845339786227 +FOM_DETF_ww: 1.1684043726293076 +FOM_gg: 2564.571692653925 +FOM_ww: 50.37456310645805 +SNR_3x2: 1475.2521428250795 +SNR_gg: 1473.6679609303662 +SNR_ww: 367.01533953786975 +counts: + 0: 493927 + 1: 1454720 + 2: 2074746 + 3: 2607392 + 4: 1383901 + 5: 458260 + 6: 138246 +name: funbins_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_7_riz_0.npy.yml new file mode 100644 index 00000000..9f7b0336 --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 7571.29386500077 +FOM_DETF_3x2: 122.05054704752281 +FOM_DETF_gg: 18.54635534656465 +FOM_DETF_ww: 0.9142207667584983 +FOM_gg: 2084.4119768723895 +FOM_ww: 36.48698924581893 +SNR_3x2: 1344.3922086423017 +SNR_gg: 1342.2269108742457 +SNR_ww: 354.8506021767708 +counts: + 0: 418980 + 1: 1578869 + 2: 2158426 + 3: 2571949 + 4: 1303863 + 5: 449694 + 6: 129411 +name: funbins_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_9_griz_0.npy.yml new file mode 100644 index 00000000..2d3aced6 --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 12668.156323260662 +FOM_DETF_3x2: 167.20849172232766 +FOM_DETF_gg: 31.37220792871702 +FOM_DETF_ww: 1.2071481810529747 +FOM_gg: 3751.4107225631483 +FOM_ww: 54.03473382509035 +SNR_3x2: 1659.7244202838503 +SNR_gg: 1658.345594609368 +SNR_ww: 367.860054490669 +counts: + 0: 294760 + 1: 906990 + 2: 1307869 + 3: 1814563 + 4: 2093514 + 5: 1230821 + 6: 609616 + 7: 255401 + 8: 97658 +name: funbins_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/funbins_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/funbins_9_riz_0.npy.yml new file mode 100644 index 00000000..164669d7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/funbins_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 10959.129302029305 +FOM_DETF_3x2: 141.75743561049592 +FOM_DETF_gg: 25.628283017504543 +FOM_DETF_ww: 0.9474562642378487 +FOM_gg: 3068.218590745035 +FOM_ww: 39.756251204979414 +SNR_3x2: 1499.1609264174865 +SNR_gg: 1497.167437821506 +SNR_ww: 355.69049454015754 +counts: + 0: 228866 + 1: 983693 + 2: 1294869 + 3: 1919317 + 4: 2036704 + 5: 1164340 + 6: 619030 + 7: 269547 + 8: 94826 +name: funbins_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_3_griz_0.npy.yml new file mode 100644 index 00000000..b257a1bc --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1253.1384102965594 +FOM_DETF_3x2: 42.802322159828556 +FOM_DETF_gg: 3.566524084524439 +FOM_DETF_ww: 0.8242000960798244 +FOM_gg: 295.2649005524219 +FOM_ww: 29.98940957684074 +SNR_3x2: 1099.782728995069 +SNR_gg: 1096.6311171795637 +SNR_ww: 361.041488962657 +counts: + 0: 2876196 + 1: 2858128 + 2: 2876868 +name: mlpqna_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_3_riz_0.npy.yml new file mode 100644 index 00000000..2ecd95b0 --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 1266.2587009894082 +FOM_DETF_3x2: 39.25092886627735 +FOM_DETF_gg: 3.669440733753176 +FOM_DETF_ww: 0.6729074566662171 +FOM_gg: 317.38963637468896 +FOM_ww: 23.076616660674407 +SNR_3x2: 1085.6096612875133 +SNR_gg: 1082.568811184235 +SNR_ww: 351.6096845584306 +counts: + 0: 2966918 + 1: 2849169 + 2: 2795105 +name: mlpqna_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_5_griz_0.npy.yml new file mode 100644 index 00000000..70d64304 --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 3140.7182589106696 +FOM_DETF_3x2: 72.22726869891012 +FOM_DETF_gg: 9.975192206355837 +FOM_DETF_ww: 1.050550156018056 +FOM_gg: 926.5767613047619 +FOM_ww: 43.909463552478236 +SNR_3x2: 1385.1071121159555 +SNR_gg: 1383.3998148903129 +SNR_ww: 365.71576118600683 +counts: + 0: 1801225 + 1: 1648735 + 2: 1718818 + 3: 1764238 + 4: 1678176 +name: mlpqna_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_5_riz_0.npy.yml new file mode 100644 index 00000000..0aa066ea --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2929.992790259516 +FOM_DETF_3x2: 64.69101925321965 +FOM_DETF_gg: 9.347253636687384 +FOM_DETF_ww: 0.884841246154434 +FOM_gg: 881.4286490352645 +FOM_ww: 34.98832675167727 +SNR_3x2: 1320.8978256339035 +SNR_gg: 1318.8927006531273 +SNR_ww: 355.4382308189232 +counts: + 0: 1956442 + 1: 1820863 + 2: 1506189 + 3: 1922440 + 4: 1405258 +name: mlpqna_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_7_griz_0.npy.yml new file mode 100644 index 00000000..709de7a4 --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 6348.070715970817 +FOM_DETF_3x2: 108.99359229568006 +FOM_DETF_gg: 16.864402937514477 +FOM_DETF_ww: 1.1121329023545958 +FOM_gg: 1730.6614520005903 +FOM_ww: 48.929408775688934 +SNR_3x2: 1630.2018521669763 +SNR_gg: 1628.8938538726638 +SNR_ww: 366.9697233609333 +counts: + 0: 1227461 + 1: 1234776 + 2: 1230803 + 3: 1199643 + 4: 1237162 + 5: 1228093 + 6: 1253254 +name: mlpqna_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_7_riz_0.npy.yml new file mode 100644 index 00000000..c2c86113 --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 5761.030214165859 +FOM_DETF_3x2: 93.23191012566214 +FOM_DETF_gg: 14.937629092983762 +FOM_DETF_ww: 0.9058441461120427 +FOM_gg: 1559.8949609105218 +FOM_ww: 37.319230995745876 +SNR_3x2: 1548.3860994375316 +SNR_gg: 1546.7341809083107 +SNR_ww: 355.0834579638029 +counts: + 0: 1400482 + 1: 1082266 + 2: 1480923 + 3: 967855 + 4: 1270670 + 5: 1182793 + 6: 1226203 +name: mlpqna_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_9_griz_0.npy.yml new file mode 100644 index 00000000..194479a7 --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9076.152177245565 +FOM_DETF_3x2: 133.69695743812343 +FOM_DETF_gg: 22.32340983886288 +FOM_DETF_ww: 1.1534437572937544 +FOM_gg: 2388.6549521470247 +FOM_ww: 51.36704816212134 +SNR_3x2: 1810.3758557177239 +SNR_gg: 1809.210898037558 +SNR_ww: 367.53544152706297 +counts: + 0: 974203 + 1: 946558 + 2: 954704 + 3: 949595 + 4: 940500 + 5: 954191 + 6: 1014584 + 7: 925445 + 8: 951412 +name: mlpqna_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/mlpqna_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/mlpqna_9_riz_0.npy.yml new file mode 100644 index 00000000..fbdaf35a --- /dev/null +++ b/paper/results/cosmodc2/metrics/mlpqna_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8624.5466294103 +FOM_DETF_3x2: 121.80136293404605 +FOM_DETF_gg: 20.025170823917534 +FOM_DETF_ww: 0.9200620298072955 +FOM_gg: 2177.1190019431065 +FOM_ww: 38.019218325618695 +SNR_3x2: 1676.5277380165717 +SNR_gg: 1674.843959788713 +SNR_ww: 355.050356496025 +counts: + 0: 852178 + 1: 1101043 + 2: 970577 + 3: 1078961 + 4: 764123 + 5: 1017998 + 6: 1079044 + 7: 768182 + 8: 979086 +name: mlpqna_9_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_griz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_griz_0.npy.yml new file mode 100644 index 00000000..635d0841 --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_griz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 685.2522574438113 +FOM_DETF_3x2: 39.37014116470923 +FOM_DETF_gg: 2.172102536288314 +FOM_DETF_ww: 0.11998587518179885 +FOM_gg: 173.39763586322914 +FOM_ww: 1.6779418402220367 +SNR_3x2: 1108.8175448076188 +SNR_gg: 1103.2885796359062 +SNR_ww: 340.66222740687726 +counts: + 0: 6996453 + 1: 1009630 + 2: 605109 +name: myCombinedClassifiers_3_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_riz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_riz_0.npy.yml new file mode 100644 index 00000000..a00f1ac2 --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_3_riz_0.npy.yml @@ -0,0 +1,14 @@ +FOM_3x2: 610.1875175596964 +FOM_DETF_3x2: 35.316571148062785 +FOM_DETF_gg: 2.05091777487473 +FOM_DETF_ww: 0.07575416065619343 +FOM_gg: 166.1615457247637 +FOM_ww: 1.2176405726092263 +SNR_3x2: 1021.7046501113674 +SNR_gg: 1017.4122875720584 +SNR_ww: 337.235802960027 +counts: + 0: 7102553 + 1: 1126515 + 2: 382124 +name: myCombinedClassifiers_3_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_griz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_griz_0.npy.yml new file mode 100644 index 00000000..f60bb936 --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_griz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2262.8878383268243 +FOM_DETF_3x2: 63.92124171327897 +FOM_DETF_gg: 5.5833697249431316 +FOM_DETF_ww: 0.49745499714130215 +FOM_gg: 511.62533265403727 +FOM_ww: 10.872943816762197 +SNR_3x2: 1431.2907455518791 +SNR_gg: 1427.9499051613468 +SNR_ww: 349.19061609199326 +counts: + 0: 5475679 + 1: 1043417 + 2: 590634 + 3: 721677 + 4: 779785 +name: myCombinedClassifiers_5_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_riz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_riz_0.npy.yml new file mode 100644 index 00000000..85e90f6a --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_5_riz_0.npy.yml @@ -0,0 +1,16 @@ +FOM_3x2: 2159.4062408865843 +FOM_DETF_3x2: 60.46463932123297 +FOM_DETF_gg: 5.741497758049762 +FOM_DETF_ww: 0.4208508647248207 +FOM_gg: 538.4606118918342 +FOM_ww: 8.404724485270576 +SNR_3x2: 1318.6154497805962 +SNR_gg: 1316.1951368381533 +SNR_ww: 343.26892029273165 +counts: + 0: 5615667 + 1: 1165544 + 2: 446552 + 3: 634881 + 4: 748548 +name: myCombinedClassifiers_5_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_griz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_griz_0.npy.yml new file mode 100644 index 00000000..f63fae67 --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_griz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4801.217695295737 +FOM_DETF_3x2: 93.11091015094796 +FOM_DETF_gg: 11.400254193193202 +FOM_DETF_ww: 0.949129981554946 +FOM_gg: 1102.6031848474875 +FOM_ww: 37.24887408821785 +SNR_3x2: 1674.3201456198544 +SNR_gg: 1671.5023588538331 +SNR_ww: 355.9827989110979 +counts: + 0: 2869242 + 1: 1050147 + 2: 595370 + 3: 718691 + 4: 788778 + 5: 1743805 + 6: 845159 +name: myCombinedClassifiers_7_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_riz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_riz_0.npy.yml new file mode 100644 index 00000000..52c14e5e --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_7_riz_0.npy.yml @@ -0,0 +1,18 @@ +FOM_3x2: 4584.132117114498 +FOM_DETF_3x2: 83.4843530203683 +FOM_DETF_gg: 11.040439520788283 +FOM_DETF_ww: 0.7799395347785004 +FOM_gg: 1102.6050090949998 +FOM_ww: 28.775548795540498 +SNR_3x2: 1557.406613516556 +SNR_gg: 1555.1747706716044 +SNR_ww: 349.31452772546817 +counts: + 0: 2888099 + 1: 1178709 + 2: 465871 + 3: 646721 + 4: 768568 + 5: 1818084 + 6: 845140 +name: myCombinedClassifiers_7_riz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_griz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_griz_0.npy.yml new file mode 100644 index 00000000..47a457cf --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_griz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 9386.774640616737 +FOM_DETF_3x2: 148.89917969892196 +FOM_DETF_gg: 25.010252121343893 +FOM_DETF_ww: 1.1177165813235015 +FOM_gg: 2601.7282741760196 +FOM_ww: 49.2666465388137 +SNR_3x2: 1839.3893705339576 +SNR_gg: 1837.7875792013558 +SNR_ww: 358.76357676655635 +counts: + 0: 669603 + 1: 1044572 + 2: 597799 + 3: 726418 + 4: 775145 + 5: 1767664 + 6: 847636 + 7: 1389451 + 8: 792904 +name: myCombinedClassifiers_9_griz_0.npy diff --git a/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_riz_0.npy.yml b/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_riz_0.npy.yml new file mode 100644 index 00000000..d08d4f31 --- /dev/null +++ b/paper/results/cosmodc2/metrics/myCombinedClassifiers_9_riz_0.npy.yml @@ -0,0 +1,20 @@ +FOM_3x2: 8038.72664975656 +FOM_DETF_3x2: 120.35164123675976 +FOM_DETF_gg: 19.347572560487418 +FOM_DETF_ww: 0.9358086733478708 +FOM_gg: 2036.329087036212 +FOM_ww: 39.081129872309155 +SNR_3x2: 1672.1893061645603 +SNR_gg: 1670.146355446712 +SNR_ww: 351.56316002760957 +counts: + 0: 553100 + 1: 1316883 + 2: 466574 + 3: 666596 + 4: 770210 + 5: 1805023 + 6: 880204 + 7: 1393690 + 8: 758912 +name: myCombinedClassifiers_9_riz_0.npy diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_3_griz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_3_griz_0.npy.png new file mode 100644 index 00000000..7014f5ae Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_3_riz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_3_riz_0.npy.png new file mode 100644 index 00000000..c8effc27 Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_5_griz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_5_griz_0.npy.png new file mode 100644 index 00000000..9850b98c Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_5_riz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_5_riz_0.npy.png new file mode 100644 index 00000000..2d1fb368 Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_7_griz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_7_griz_0.npy.png new file mode 100644 index 00000000..0e10bb48 Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_7_riz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_7_riz_0.npy.png new file mode 100644 index 00000000..3fceb23a Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_9_griz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_9_griz_0.npy.png new file mode 100644 index 00000000..154c0c3c Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Autokeras_LSTM_9_riz_0.npy.png b/paper/results/cosmodc2/plots/Autokeras_LSTM_9_riz_0.npy.png new file mode 100644 index 00000000..e0f1ad00 Binary files /dev/null and b/paper/results/cosmodc2/plots/Autokeras_LSTM_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_3_griz_0.npy.png b/paper/results/cosmodc2/plots/CNN_3_griz_0.npy.png new file mode 100644 index 00000000..7c2e0d74 Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_3_riz_0.npy.png b/paper/results/cosmodc2/plots/CNN_3_riz_0.npy.png new file mode 100644 index 00000000..e9210993 Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_5_griz_0.npy.png b/paper/results/cosmodc2/plots/CNN_5_griz_0.npy.png new file mode 100644 index 00000000..f7861093 Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_5_riz_0.npy.png b/paper/results/cosmodc2/plots/CNN_5_riz_0.npy.png new file mode 100644 index 00000000..88c7d311 Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_7_griz_0.npy.png b/paper/results/cosmodc2/plots/CNN_7_griz_0.npy.png new file mode 100644 index 00000000..4983811f Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_7_riz_0.npy.png b/paper/results/cosmodc2/plots/CNN_7_riz_0.npy.png new file mode 100644 index 00000000..98f5edcf Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_9_griz_0.npy.png b/paper/results/cosmodc2/plots/CNN_9_griz_0.npy.png new file mode 100644 index 00000000..e23b1528 Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/CNN_9_riz_0.npy.png b/paper/results/cosmodc2/plots/CNN_9_riz_0.npy.png new file mode 100644 index 00000000..52405eff Binary files /dev/null and b/paper/results/cosmodc2/plots/CNN_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_3_griz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_3_griz_0.npy.png new file mode 100644 index 00000000..ac63d0bf Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_3_riz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_3_riz_0.npy.png new file mode 100644 index 00000000..2ac1297a Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_5_griz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_5_griz_0.npy.png new file mode 100644 index 00000000..2ee2531b Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_5_riz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_5_riz_0.npy.png new file mode 100644 index 00000000..99e188f9 Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_7_griz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_7_griz_0.npy.png new file mode 100644 index 00000000..bf6a3d27 Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_7_riz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_7_riz_0.npy.png new file mode 100644 index 00000000..53fd47d1 Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_9_griz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_9_griz_0.npy.png new file mode 100644 index 00000000..9fb0bfe0 Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ComplexSOM_9_riz_0.npy.png b/paper/results/cosmodc2/plots/ComplexSOM_9_riz_0.npy.png new file mode 100644 index 00000000..2e48fe38 Binary files /dev/null and b/paper/results/cosmodc2/plots/ComplexSOM_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ENSEMBLE1_3_riz_0.npy.png b/paper/results/cosmodc2/plots/ENSEMBLE1_3_riz_0.npy.png new file mode 100644 index 00000000..519952bc Binary files /dev/null and b/paper/results/cosmodc2/plots/ENSEMBLE1_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ENSEMBLE1_5_riz_0.npy.png b/paper/results/cosmodc2/plots/ENSEMBLE1_5_riz_0.npy.png new file mode 100644 index 00000000..cc3793db Binary files /dev/null and b/paper/results/cosmodc2/plots/ENSEMBLE1_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ENSEMBLE1_7_riz_0.npy.png b/paper/results/cosmodc2/plots/ENSEMBLE1_7_riz_0.npy.png new file mode 100644 index 00000000..d972e6c0 Binary files /dev/null and b/paper/results/cosmodc2/plots/ENSEMBLE1_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_3_griz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_3_griz_0.npy.png new file mode 100644 index 00000000..3108b6e8 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_3_riz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_3_riz_0.npy.png new file mode 100644 index 00000000..b91e7777 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_5_griz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_5_griz_0.npy.png new file mode 100644 index 00000000..2ca9bb33 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_5_riz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_5_riz_0.npy.png new file mode 100644 index 00000000..a644c44b Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_7_griz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_7_griz_0.npy.png new file mode 100644 index 00000000..67bd6e55 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_7_riz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_7_riz_0.npy.png new file mode 100644 index 00000000..b3bb5e79 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_9_griz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_9_griz_0.npy.png new file mode 100644 index 00000000..f51b15a8 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/GPzBinning_9_riz_0.npy.png b/paper/results/cosmodc2/plots/GPzBinning_9_riz_0.npy.png new file mode 100644 index 00000000..22f19da9 Binary files /dev/null and b/paper/results/cosmodc2/plots/GPzBinning_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_3_griz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_3_griz_0.npy.png new file mode 100644 index 00000000..7d749ffd Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_3_riz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_3_riz_0.npy.png new file mode 100644 index 00000000..7d749ffd Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_5_griz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_5_griz_0.npy.png new file mode 100644 index 00000000..46fadedd Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_5_riz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_5_riz_0.npy.png new file mode 100644 index 00000000..46fadedd Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_7_griz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_7_griz_0.npy.png new file mode 100644 index 00000000..13e700a5 Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_7_riz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_7_riz_0.npy.png new file mode 100644 index 00000000..13e700a5 Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_9_griz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_9_griz_0.npy.png new file mode 100644 index 00000000..c859ff39 Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/IBandOnly_9_riz_0.npy.png b/paper/results/cosmodc2/plots/IBandOnly_9_riz_0.npy.png new file mode 100644 index 00000000..c859ff39 Binary files /dev/null and b/paper/results/cosmodc2/plots/IBandOnly_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_3_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_3_griz_0.npy.png new file mode 100644 index 00000000..a594ac4b Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_3_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_3_riz_0.npy.png new file mode 100644 index 00000000..f9545e74 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_5_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_5_griz_0.npy.png new file mode 100644 index 00000000..94b0e5ac Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_5_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_5_riz_0.npy.png new file mode 100644 index 00000000..ddd4c562 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_7_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_7_griz_0.npy.png new file mode 100644 index 00000000..32fd6389 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_7_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_7_riz_0.npy.png new file mode 100644 index 00000000..701cf6cc Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_9_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_9_griz_0.npy.png new file mode 100644 index 00000000..cb495cbb Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxCNN_9_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxCNN_9_riz_0.npy.png new file mode 100644 index 00000000..f2952e96 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxCNN_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_3_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_3_griz_0.npy.png new file mode 100644 index 00000000..cf9f4f7e Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_3_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_3_riz_0.npy.png new file mode 100644 index 00000000..546e8bcd Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_5_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_5_griz_0.npy.png new file mode 100644 index 00000000..dfc454f8 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_5_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_5_riz_0.npy.png new file mode 100644 index 00000000..53f5d6b2 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_7_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_7_griz_0.npy.png new file mode 100644 index 00000000..7b030c81 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_7_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_7_riz_0.npy.png new file mode 100644 index 00000000..aeee8390 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_9_griz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_9_griz_0.npy.png new file mode 100644 index 00000000..334c3009 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/JaxResNet_9_riz_0.npy.png b/paper/results/cosmodc2/plots/JaxResNet_9_riz_0.npy.png new file mode 100644 index 00000000..23da8ba0 Binary files /dev/null and b/paper/results/cosmodc2/plots/JaxResNet_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_3_griz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_3_griz_0.npy.png new file mode 100644 index 00000000..4a05daf8 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_3_riz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_3_riz_0.npy.png new file mode 100644 index 00000000..235e2cf4 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_5_griz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_5_griz_0.npy.png new file mode 100644 index 00000000..e310e438 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_5_riz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_5_riz_0.npy.png new file mode 100644 index 00000000..bc46fc3b Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_7_griz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_7_griz_0.npy.png new file mode 100644 index 00000000..87403f38 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_7_riz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_7_riz_0.npy.png new file mode 100644 index 00000000..3927e571 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_9_griz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_9_griz_0.npy.png new file mode 100644 index 00000000..67546986 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LGBM_9_riz_0.npy.png b/paper/results/cosmodc2/plots/LGBM_9_riz_0.npy.png new file mode 100644 index 00000000..8716cd70 Binary files /dev/null and b/paper/results/cosmodc2/plots/LGBM_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_3_griz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_3_griz_0.npy.png new file mode 100644 index 00000000..a26e46fe Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_3_riz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_3_riz_0.npy.png new file mode 100644 index 00000000..6a626e3b Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_5_griz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_5_griz_0.npy.png new file mode 100644 index 00000000..349cbd2b Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_5_riz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_5_riz_0.npy.png new file mode 100644 index 00000000..47a28643 Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_7_griz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_7_griz_0.npy.png new file mode 100644 index 00000000..3416f521 Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_7_riz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_7_riz_0.npy.png new file mode 100644 index 00000000..b354339f Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_9_griz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_9_griz_0.npy.png new file mode 100644 index 00000000..51a431a0 Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/LSTM_9_riz_0.npy.png b/paper/results/cosmodc2/plots/LSTM_9_riz_0.npy.png new file mode 100644 index 00000000..d03830e6 Binary files /dev/null and b/paper/results/cosmodc2/plots/LSTM_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/MineCraft_0_griz_0.npy.png b/paper/results/cosmodc2/plots/MineCraft_0_griz_0.npy.png new file mode 100644 index 00000000..68232713 Binary files /dev/null and b/paper/results/cosmodc2/plots/MineCraft_0_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/MineCraft_0_riz_0.npy.png b/paper/results/cosmodc2/plots/MineCraft_0_riz_0.npy.png new file mode 100644 index 00000000..76a0d686 Binary files /dev/null and b/paper/results/cosmodc2/plots/MineCraft_0_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz.npy.png new file mode 100644 index 00000000..1fcf8309 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz_0.npy.png new file mode 100644 index 00000000..1fcf8309 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz.npy.png new file mode 100644 index 00000000..cc22a339 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz_0.npy.png new file mode 100644 index 00000000..cc22a339 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz.npy.png new file mode 100644 index 00000000..6037a618 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz_0.npy.png new file mode 100644 index 00000000..6037a618 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz.npy.png new file mode 100644 index 00000000..676ec047 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz_0.npy.png new file mode 100644 index 00000000..676ec047 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz.npy.png new file mode 100644 index 00000000..2c93f1d4 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz_0.npy.png new file mode 100644 index 00000000..2c93f1d4 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz.npy.png new file mode 100644 index 00000000..6d2d6f3f Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz_0.npy.png new file mode 100644 index 00000000..6d2d6f3f Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork1_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz.npy.png new file mode 100644 index 00000000..4ab73415 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz_0.npy.png new file mode 100644 index 00000000..4ab73415 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz.npy.png new file mode 100644 index 00000000..19e8a541 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz_0.npy.png new file mode 100644 index 00000000..19e8a541 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz.npy.png new file mode 100644 index 00000000..ba5fe156 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz_0.npy.png new file mode 100644 index 00000000..ba5fe156 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz.npy.png new file mode 100644 index 00000000..526b214f Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz_0.npy.png new file mode 100644 index 00000000..526b214f Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz.npy.png new file mode 100644 index 00000000..ff049756 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz_0.npy.png new file mode 100644 index 00000000..ff049756 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz.npy.png new file mode 100644 index 00000000..59312674 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz_0.npy.png new file mode 100644 index 00000000..59312674 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz.npy.png new file mode 100644 index 00000000..62336c06 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz_0.npy.png new file mode 100644 index 00000000..62336c06 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz.npy.png new file mode 100644 index 00000000..28f02bc7 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz.npy.png differ diff --git a/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz_0.npy.png b/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz_0.npy.png new file mode 100644 index 00000000..28f02bc7 Binary files /dev/null and b/paper/results/cosmodc2/plots/NeuralNetwork2_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_3_griz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_3_griz_0.npy.png new file mode 100644 index 00000000..7c4fcf58 Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_3_riz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_3_riz_0.npy.png new file mode 100644 index 00000000..0588b092 Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_5_griz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_5_griz_0.npy.png new file mode 100644 index 00000000..123c4ddb Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_5_riz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_5_riz_0.npy.png new file mode 100644 index 00000000..d724dc13 Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_7_griz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_7_griz_0.npy.png new file mode 100644 index 00000000..3bd96d7f Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/PCACluster_7_riz_0.npy.png b/paper/results/cosmodc2/plots/PCACluster_7_riz_0.npy.png new file mode 100644 index 00000000..e1b7e7cd Binary files /dev/null and b/paper/results/cosmodc2/plots/PCACluster_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_3_griz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_3_griz_0.npy.png new file mode 100644 index 00000000..1b7a338e Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_3_riz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_3_riz_0.npy.png new file mode 100644 index 00000000..ef0b1614 Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_5_griz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_5_griz_0.npy.png new file mode 100644 index 00000000..def70b44 Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_5_riz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_5_riz_0.npy.png new file mode 100644 index 00000000..ed969ee9 Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_7_griz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_7_griz_0.npy.png new file mode 100644 index 00000000..b64c5d1a Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_7_riz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_7_riz_0.npy.png new file mode 100644 index 00000000..843aa6a3 Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_9_griz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_9_griz_0.npy.png new file mode 100644 index 00000000..22cf5bde Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/RandomForest_9_riz_0.npy.png b/paper/results/cosmodc2/plots/RandomForest_9_riz_0.npy.png new file mode 100644 index 00000000..385dfe05 Binary files /dev/null and b/paper/results/cosmodc2/plots/RandomForest_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_3_griz_0.npy.png b/paper/results/cosmodc2/plots/Random_3_griz_0.npy.png new file mode 100644 index 00000000..87cf39ca Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_3_riz_0.npy.png b/paper/results/cosmodc2/plots/Random_3_riz_0.npy.png new file mode 100644 index 00000000..87cf39ca Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_5_griz_0.npy.png b/paper/results/cosmodc2/plots/Random_5_griz_0.npy.png new file mode 100644 index 00000000..ef045ade Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_5_riz_0.npy.png b/paper/results/cosmodc2/plots/Random_5_riz_0.npy.png new file mode 100644 index 00000000..ef045ade Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_7_griz_0.npy.png b/paper/results/cosmodc2/plots/Random_7_griz_0.npy.png new file mode 100644 index 00000000..bc46728d Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_7_riz_0.npy.png b/paper/results/cosmodc2/plots/Random_7_riz_0.npy.png new file mode 100644 index 00000000..bc46728d Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_9_griz_0.npy.png b/paper/results/cosmodc2/plots/Random_9_griz_0.npy.png new file mode 100644 index 00000000..85211242 Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/Random_9_riz_0.npy.png b/paper/results/cosmodc2/plots/Random_9_riz_0.npy.png new file mode 100644 index 00000000..85211242 Binary files /dev/null and b/paper/results/cosmodc2/plots/Random_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_3_griz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_3_griz_0.npy.png new file mode 100644 index 00000000..76b45ec4 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_3_riz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_3_riz_0.npy.png new file mode 100644 index 00000000..6468a252 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_5_griz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_5_griz_0.npy.png new file mode 100644 index 00000000..ffb8cc74 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_5_riz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_5_riz_0.npy.png new file mode 100644 index 00000000..04272a6a Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_7_griz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_7_griz_0.npy.png new file mode 100644 index 00000000..ca8a4597 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_7_riz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_7_riz_0.npy.png new file mode 100644 index 00000000..6df91711 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_9_griz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_9_griz_0.npy.png new file mode 100644 index 00000000..4a5a0734 Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/SimpleSOM_9_riz_0.npy.png b/paper/results/cosmodc2/plots/SimpleSOM_9_riz_0.npy.png new file mode 100644 index 00000000..99a96d0e Binary files /dev/null and b/paper/results/cosmodc2/plots/SimpleSOM_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_3_griz_0.npy.png b/paper/results/cosmodc2/plots/TCN_3_griz_0.npy.png new file mode 100644 index 00000000..5fa4e603 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_3_riz_0.npy.png b/paper/results/cosmodc2/plots/TCN_3_riz_0.npy.png new file mode 100644 index 00000000..f8f84944 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_5_griz_0.npy.png b/paper/results/cosmodc2/plots/TCN_5_griz_0.npy.png new file mode 100644 index 00000000..f17e1f77 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_5_riz_0.npy.png b/paper/results/cosmodc2/plots/TCN_5_riz_0.npy.png new file mode 100644 index 00000000..9b8921bc Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_7_griz_0.npy.png b/paper/results/cosmodc2/plots/TCN_7_griz_0.npy.png new file mode 100644 index 00000000..b8f903ca Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_7_riz_0.npy.png b/paper/results/cosmodc2/plots/TCN_7_riz_0.npy.png new file mode 100644 index 00000000..c459f631 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_9_griz_0.npy.png b/paper/results/cosmodc2/plots/TCN_9_griz_0.npy.png new file mode 100644 index 00000000..35fd8238 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/TCN_9_riz_0.npy.png b/paper/results/cosmodc2/plots/TCN_9_riz_0.npy.png new file mode 100644 index 00000000..f318cf74 Binary files /dev/null and b/paper/results/cosmodc2/plots/TCN_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_3_griz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_3_griz_0.npy.png new file mode 100644 index 00000000..093cb00f Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_3_riz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_3_riz_0.npy.png new file mode 100644 index 00000000..890fef36 Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_5_griz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_5_griz_0.npy.png new file mode 100644 index 00000000..6bd0e92b Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_5_riz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_5_riz_0.npy.png new file mode 100644 index 00000000..6ce4782d Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_7_griz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_7_griz_0.npy.png new file mode 100644 index 00000000..88601c0a Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_7_riz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_7_riz_0.npy.png new file mode 100644 index 00000000..056c9476 Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_9_griz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_9_griz_0.npy.png new file mode 100644 index 00000000..ed52f8c4 Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/UTOPIA_9_riz_0.npy.png b/paper/results/cosmodc2/plots/UTOPIA_9_riz_0.npy.png new file mode 100644 index 00000000..d3308c13 Binary files /dev/null and b/paper/results/cosmodc2/plots/UTOPIA_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_3_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_3_griz_0.npy.png new file mode 100644 index 00000000..d2569ae2 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_3_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_3_riz_0.npy.png new file mode 100644 index 00000000..9882d73e Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_5_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_5_griz_0.npy.png new file mode 100644 index 00000000..1a5a291f Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_5_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_5_riz_0.npy.png new file mode 100644 index 00000000..baf0ab4f Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_7_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_7_griz_0.npy.png new file mode 100644 index 00000000..d0a235d8 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_7_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_7_riz_0.npy.png new file mode 100644 index 00000000..c3ce1bac Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_9_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_9_griz_0.npy.png new file mode 100644 index 00000000..6b626224 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotBin_9_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotBin_9_riz_0.npy.png new file mode 100644 index 00000000..b6c60801 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotBin_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_3_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_3_griz_0.npy.png new file mode 100644 index 00000000..70d80be9 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_3_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_3_riz_0.npy.png new file mode 100644 index 00000000..7ae21fff Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_5_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_5_griz_0.npy.png new file mode 100644 index 00000000..9faeac81 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_5_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_5_riz_0.npy.png new file mode 100644 index 00000000..4ae068c1 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_7_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_7_griz_0.npy.png new file mode 100644 index 00000000..2d3edda3 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_7_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_7_riz_0.npy.png new file mode 100644 index 00000000..e0957b48 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_9_griz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_9_griz_0.npy.png new file mode 100644 index 00000000..35689900 Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/ZotNet_9_riz_0.npy.png b/paper/results/cosmodc2/plots/ZotNet_9_riz_0.npy.png new file mode 100644 index 00000000..98f552dd Binary files /dev/null and b/paper/results/cosmodc2/plots/ZotNet_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_3_griz_0.npy.png b/paper/results/cosmodc2/plots/funbins_3_griz_0.npy.png new file mode 100644 index 00000000..67b7799c Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_3_riz_0.npy.png b/paper/results/cosmodc2/plots/funbins_3_riz_0.npy.png new file mode 100644 index 00000000..34c98dca Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_5_griz_0.npy.png b/paper/results/cosmodc2/plots/funbins_5_griz_0.npy.png new file mode 100644 index 00000000..076ecd0d Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_5_riz_0.npy.png b/paper/results/cosmodc2/plots/funbins_5_riz_0.npy.png new file mode 100644 index 00000000..8882d862 Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_7_griz_0.npy.png b/paper/results/cosmodc2/plots/funbins_7_griz_0.npy.png new file mode 100644 index 00000000..a30ffabb Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_7_riz_0.npy.png b/paper/results/cosmodc2/plots/funbins_7_riz_0.npy.png new file mode 100644 index 00000000..42a64485 Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_9_griz_0.npy.png b/paper/results/cosmodc2/plots/funbins_9_griz_0.npy.png new file mode 100644 index 00000000..c8081382 Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/funbins_9_riz_0.npy.png b/paper/results/cosmodc2/plots/funbins_9_riz_0.npy.png new file mode 100644 index 00000000..f88dd060 Binary files /dev/null and b/paper/results/cosmodc2/plots/funbins_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_3_griz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_3_griz_0.npy.png new file mode 100644 index 00000000..84073cb6 Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_3_riz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_3_riz_0.npy.png new file mode 100644 index 00000000..37498f2f Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_5_griz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_5_griz_0.npy.png new file mode 100644 index 00000000..45988048 Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_5_riz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_5_riz_0.npy.png new file mode 100644 index 00000000..5881df7a Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_7_griz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_7_griz_0.npy.png new file mode 100644 index 00000000..63874a06 Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_7_riz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_7_riz_0.npy.png new file mode 100644 index 00000000..e057527d Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_9_griz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_9_griz_0.npy.png new file mode 100644 index 00000000..547f8313 Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/mlpqna_9_riz_0.npy.png b/paper/results/cosmodc2/plots/mlpqna_9_riz_0.npy.png new file mode 100644 index 00000000..c5bf9e17 Binary files /dev/null and b/paper/results/cosmodc2/plots/mlpqna_9_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_3_griz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_3_griz_0.npy.png new file mode 100644 index 00000000..731c23e5 Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_3_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_3_riz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_3_riz_0.npy.png new file mode 100644 index 00000000..eb28b59b Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_3_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_5_griz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_5_griz_0.npy.png new file mode 100644 index 00000000..a3a8a80d Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_5_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_5_riz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_5_riz_0.npy.png new file mode 100644 index 00000000..922df76c Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_5_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_7_griz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_7_griz_0.npy.png new file mode 100644 index 00000000..904c88ef Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_7_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_7_riz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_7_riz_0.npy.png new file mode 100644 index 00000000..9cdc5ce1 Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_7_riz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_9_griz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_9_griz_0.npy.png new file mode 100644 index 00000000..d23a45f7 Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_9_griz_0.npy.png differ diff --git a/paper/results/cosmodc2/plots/myCombinedClassifiers_9_riz_0.npy.png b/paper/results/cosmodc2/plots/myCombinedClassifiers_9_riz_0.npy.png new file mode 100644 index 00000000..c6f4c260 Binary files /dev/null and b/paper/results/cosmodc2/plots/myCombinedClassifiers_9_riz_0.npy.png differ diff --git a/paper/results/edge_comparison.pdf b/paper/results/edge_comparison.pdf new file mode 100644 index 00000000..8f479e4e Binary files /dev/null and b/paper/results/edge_comparison.pdf differ diff --git a/paper/results/funbins_nz.pdf b/paper/results/funbins_nz.pdf new file mode 100644 index 00000000..708f9a0d Binary files /dev/null and b/paper/results/funbins_nz.pdf differ diff --git a/paper/results/g_band_loss.pdf b/paper/results/g_band_loss.pdf new file mode 100644 index 00000000..56670a2e Binary files /dev/null and b/paper/results/g_band_loss.pdf differ diff --git a/paper/results/initial_data.pdf b/paper/results/initial_data.pdf new file mode 100644 index 00000000..5a643ed8 Binary files /dev/null and b/paper/results/initial_data.pdf differ diff --git a/paper/results/make_figures.py b/paper/results/make_figures.py new file mode 100644 index 00000000..33328f0f --- /dev/null +++ b/paper/results/make_figures.py @@ -0,0 +1,657 @@ +import os +import yaml +import tabulate +import numpy as np +from astropy.table import Table +import matplotlib +import subprocess +import h5py +import collections +import matplotlib.pyplot as plt +import scipy.stats +# set default styles + + +blue_color = '#1f77b4' +orange_color = '#ff7f0e' + + +method_names = [ + "Autokeras_LSTM", + "CNN", + "ComplexSOM", + "ENSEMBLE1", + "funbins", + "GPzBinning", + "IBandOnly", + "JaxCNN", + "JaxResNet", + "LGBM", + "LSTM", +# "MineCraft", + "mlpqna", + "myCombinedClassifiers", + "NeuralNetwork1", + "NeuralNetwork2", + "PCACluster", + "PQNLD", + "Random", + "RandomForest", + "SimpleSOM", + "TensorFlow_FFNN", + "TCN", + "UTOPIA", + "ZotBin", + "ZotNet", +] + + +methods_with_trained_edges = [ + "ComplexSOM", + "JaxCNN", + "JaxResNet", + "NeuralNetwork1", + "NeuralNetwork2", + "PCACluster", + "ZotBin", + "ZotNet", +] + +methods_with_fixed_edges = [m for m in method_names if m not in methods_with_trained_edges] + + +methods_reordered = methods_with_trained_edges + methods_with_fixed_edges +method_names = methods_reordered +metrics = ["SNR_ww", "SNR_gg", "SNR_3x2", "FOM_ww", "FOM_gg", "FOM_3x2", "FOM_DETF_ww", "FOM_DETF_gg", "FOM_DETF_3x2"] + + +class EverythingIsZero: + def __getitem__(self, x): + return 0 + +class EverythingIsNan: + def __getitem__(self, x): + return np.nan + +def make_disp_name(name): + repls = [ + ('TensorFlow_FFNN', 'FFNN'), + ("myCombinedClassifiers", "Stacked Generalization"), + ('Autokeras_LSTM', 'AutokerasLSTM'), + ('mlpqna', 'MLPQNA'), + ('funbins', 'FunBins'), + ('ENSEMBLE1', 'ENSEMBLE'), + ] + for a, b in repls: + name = name.replace(a, b) + return rf"{{\sc {name} }}" + +def make_disp_name_plot(name): + repls = [ + ('TensorFlow_FFNN', 'FFNN'), + ("myCombinedClassifiers", "Stacked Generalization"), + ('Autokeras_LSTM', 'AutokerasLSTM'), + ('mlpqna', 'MLPQNA'), + ('funbins', 'FunBins'), + ('ENSEMBLE1', 'ENSEMBLE'), + ] + for a, b in repls: + name = name.replace(a, b) + return name + + +def make_table(results, metric, filename): + N = np.array([3, 5, 7, 9]) + row_format = r"{0} & {1} & {2} & {3} & {4} & {5} & {6} & {7} & {8}\\" + data = {} + for row in results: + name = row['method'] + bands = row['bands'] + bins = row['bins'] + data[name, bands, bins] = row[metric] + + f = open(filename, 'w') + for name in method_names: + disp_name = make_disp_name(name) + row = [disp_name] + for i, bands in enumerate(['riz', 'griz']): + for n in N: + val = data.get((name, bands, n), np.nan) + if np.isnan(val): + row.append(f"--") + elif val == 0: + row.append(f"*") + else: + row.append(f"{val:.1f}") + + f.write(row_format.format(*row)) + f.write("\n") + if name == methods_with_trained_edges[-1]: + f.write("\\hline\n") + f.close() + + +def load_table(base): + N = np.array([3, 5, 7, 9]) + data = [] + for name in method_names: + for i, bands in enumerate(['riz', 'griz']): + for n in N: + row = [name, bands, n] + fn = f"{base}/metrics/{name}_{n}_{bands}_0.npy.yml" + try: + info = yaml.safe_load(open(fn)) + except: + info = EverythingIsZero() + for metric in metrics: + row.append(info[metric]) + data.append(row) + results = Table(rows=data, names=["method", "bands", "bins"] + metrics) + return results + +def pair_riz_griz(data): + riz = data['bands']=='riz' + griz = data['bands']=='griz' + assert (data['method'][riz] == data['method'][griz]).all() + assert (data['bins'][riz] == data['bins'][griz]).all() + return data[riz], data[griz] + + +def color_plot(data, x, y, ax): + c = data['bins'] + cmap = matplotlib.cm.Dark2 + for i, nbin in enumerate([3,5,7,9]): + s = data['bins']==nbin + ax.plot(x[s], y[s], '.', markersize=8, color=cmap.colors[i], label=f'$n_b={nbin}$') + + +def plot_metric_grid(data, data_set, bands, filename): + fig, axes = plt.subplots(3, 3, figsize=(10,9), sharex=True, sharey=True) + min_sel = (data['bands'] == bands) & (data['method'] == 'Random') + ymin_data = data[min_sel] + + # pick out equal + if data_set == "dc2": + ymax_data = Table.read(f"output_dc2_FIEGE_validation_riz.txt", format='ascii') + else: + ymax_data = Table.read(f"output_buzzard_FIEGE_validation_griz.txt", format='ascii') + + cmap = plt.get_cmap("tab10") + x = np.array([3, 5, 7, 9]) + for i, metric in enumerate(metrics): + ymin = ymin_data[metric] + ymax = ymax_data[metric][:4] + ymax_equalz = ymax_data[metric][4:] + ax = axes[i//3, i%3] + method_sets = [methods_with_fixed_edges, methods_with_trained_edges] + for j, method_set in enumerate(method_sets): + c = cmap(j) + for method in method_set: + if method == "Random": + continue + sel = (data['bands'] == bands) & (data['method'] == method) + y = data[sel][metric] + b = data[sel]['bins'] + s = y != 0 + ax.plot(x[s], ((y - ymin) / (ymax - ymin))[s], color=c, lw=1) + ax.set_xticks([3, 5, 7, 9]) + ax.tick_params(axis='x', which='minor', bottom=False) + ax.text(3.5, 1.7, metric, bbox={'facecolor': 'white'}) + if i//3 == 0 : + ax.set_yticks([0.0, 0.5, 1.0, 1.5]) + if i == 3: + ax.set_ylabel("Normalized metric") + ax.plot(x, ((ymax_equalz - ymin) / (ymax - ymin)), color=cmap(2), lw=3) + ax.plot(x, [0, 0, 0, 0], color='k', lw=3) + ax.plot(x, [1, 1, 1, 1], color='r', lw=3) + + ax.set_ylim(-0.01, 1.98) + ax.set_xlim(3, 9) + fig.tight_layout() + fig.subplots_adjust(hspace=0.025, wspace=0.06) + + legend_elements = [ + plt.Line2D([0], [0], color='k', lw=3), + plt.Line2D([0], [0], color='r', lw=3), + plt.Line2D([0], [0], color=cmap(2), lw=3), + plt.Line2D([0], [0], color=cmap(0), lw=1), + plt.Line2D([0], [0], color=cmap(1), lw=1) + ] + axes[0, 0].legend(legend_elements, ["Random", "Equal-N Truth", "Equal-z Truth", "Fixed edges", "Trained edges"], loc='upper right') + + fig.savefig(filename) + plt.close() + +def plot_metric_comparisons(dc2, buzzard, filename): + assert (dc2['method'] == buzzard['method']).all() + assert (dc2['bins'] == buzzard['bins']).all() + + + fig, ax = plt.subplots(4, 1, figsize=(4,9), sharex=True) + x = dc2['FOM_DETF_3x2'].copy() + x[x==0] = np.nan + y = buzzard['FOM_DETF_3x2'].copy() + y[y==0] = np.nan + color_plot(dc2, x, y, ax[0]) + ax[0].set_ylabel("Buzzard FOM") + ax[0].set_ylim(0) + ax[0].legend(frameon=True) + + + x = dc2['FOM_DETF_3x2'].copy() + x[x==0] = np.nan + y = dc2['FOM_3x2'].copy() / 1000 + y[y==0] = np.nan + color_plot(dc2, x, y, ax[1]) + ax[1].set_ylabel(r"$\Omega_c - \sigma_8$ FOM / 1000") + ax[1].set_ylim(0) + + + x = dc2['FOM_DETF_3x2'].copy() + x[x==0] = np.nan + y = dc2['FOM_DETF_ww'].copy() + y[y==0] = np.nan + color_plot(dc2, x, y, ax[2]) + ax[2].set_ylabel(r"Lensing FOM") + ax[2].set_ylim(0) + + + x = dc2['FOM_DETF_3x2'].copy() + x[x==0] = np.nan + y = dc2['SNR_3x2'].copy() + y[y==0] = np.nan + + color_plot(dc2, x, y, ax[3]) + ax[3].set_ylabel(r"SNR Metric") + ax[3].set_ylim(500) + + + ax[-1].set_xlabel("CosmoDC2 DETF 3x2pt FOM") + ax[0].set_xlim(0, 180) + fig.tight_layout() + fig.subplots_adjust(hspace=0.0) + fig.savefig(filename) + plt.close(fig) + + + +def plot_g_band_loss(dc2, buzzard, filename): + fig, ax = plt.subplots(1, 2, figsize=(8,4)) + + cmap = matplotlib.cm.Dark2 + riz, griz = pair_riz_griz(dc2) + x = riz['FOM_DETF_3x2'] + y = riz['FOM_DETF_3x2'] / griz['FOM_DETF_3x2'] + c = riz['bins'] + for i, nbin in enumerate([3,5,7,9]): + s = riz['bins']==nbin + ax[0].plot(x[s], y[s], '.', markersize=8, color=cmap.colors[i]) + + riz, griz = pair_riz_griz(buzzard) + x = riz['FOM_DETF_3x2'] + y = riz['FOM_DETF_3x2'] / griz['FOM_DETF_3x2'] + c = riz['bins'] + for i, nbin in enumerate([3,5,7,9]): + s = riz['bins']==nbin + ax[1].plot(x[s], y[s], '.', markersize=8, color=cmap.colors[i], label=f'$n_b={nbin}$') + ax[1].legend(ncol=2, frameon=True) + ax[0].axhline(1, color='k') + ax[1].axhline(1, color='k') + + ax[0].set_xlabel("riz FoM (CosmoDC2)") + ax[1].set_xlabel("riz FoM (Buzzard)") + ax[0].set_ylabel("(riz FoM) / (griz FoM)") + ax[0].set_ylim(0.5, 1.2) + ax[1].set_ylim(0.5, 1.2) + ax[0].set_xlim(0, 150) + ax[1].set_xlim(0, 100) + ax[1].set_yticklabels([]) + fig.tight_layout() + fig.savefig(filename) + plt.close(fig) + + +def plot_edge_type_comparison(data, filename): + _, data = pair_riz_griz(data) + fig, ax = plt.subplots(2, 1, figsize=(5,8), sharex=True) + + untrained = [m for m in method_names if m not in methods_with_trained_edges] + + def get(method): + s = data['method'] == method + m = data[s] + x = m['bins'] + y = m['FOM_DETF_3x2'] + z = m['FOM_DETF_ww'] + y[y==0] = np.nan + z[z==0] = np.nan + return x, y, z + + + color = blue_color + alpha = 0.5 + lw = 1 + style = "--" + need_legend = True + for method in untrained: + x, y, z = get(method) + label = "Fixed edges" if need_legend else None + need_legend = False + ax[0].plot(x, y, color, alpha=alpha, lw=lw, ls=style, label=label) + ax[1].plot(x, z, color, alpha=alpha, lw=lw, ls=style) + + color = orange_color + alpha = 1.0 + lw = 3 + style = "-" + need_legend = True + + for method in methods_with_trained_edges: + x, y, z = get(method) + label = "Trained edges" if need_legend else None + need_legend = False + ax[0].plot(x, y, color, alpha=alpha, lw=lw, ls=style, label=label) + ax[1].plot(x, z, color, alpha=alpha, lw=lw, ls=style) + + ax[0].tick_params(which='minor', length=0, axis='x') + ax[1].tick_params(which='minor', length=0, axis='x') + ax[0].legend(frameon=True) + ax[1].set_xlabel("Number of bins") + ax[0].set_ylabel("3x2pt metric") + ax[1].set_ylabel("Lensing metric") + ax[1].set_xlim(3, 9) + ax[0].set_ylim(0, 175) + ax[1].set_ylim(0, 1.25) + ax[1].set_xticks([3, 5, 7, 9]) + + fig.tight_layout() + fig.subplots_adjust(hspace=0.05) + + fig.savefig(filename) + plt.close(fig) + + +def plot_funbins_nz(filename): + riz_file = "./cosmodc2/bins/funbins_9_riz_0.npy" + griz_file = "./cosmodc2/bins/funbins_9_griz_0.npy" + ugrizy_file = "./cosmodc2/bins/funbins_ugrizy.npy" + z_file = "./cosmodc2/bins/z.npz" + + + if not os.path.exists(riz_file): + print("Data not downloaded for n(z) plot - not overwriting") + return + + fig, ax = plt.subplots(3, 1, figsize=(6,9), sharex=True, sharey=True) + colors = plt.rcParams['axes.prop_cycle'].by_key()['color'] + + riz = np.load(riz_file) + griz = np.load(griz_file) + ugrizy = np.load(ugrizy_file) + z = np.load(z_file)['arr_0'] + + + nbin = 9 + + for i in range(nbin): + w = np.where(riz == i) + weight = np.repeat(1e-5, w[0].size) + ax[0].hist(z[w], bins=50, histtype='step', ls='-', color=colors[i], weights=weight, lw=3) + + for i in range(nbin): + w = np.where(griz == i) + weight = np.repeat(1e-5, w[0].size) + ax[1].hist(z[w], bins=50, histtype='step', ls='-', color=colors[i], weights=weight, lw=3) + + + for i in range(nbin): + w = np.where(ugrizy == i) + weight = np.repeat(1e-5, w[0].size) + ax[2].hist(z[w], bins=50, histtype='step', ls='-', color=colors[i], weights=weight, lw=3) + + ax[0].set_ylabel('riz counts / $10^5$') + ax[1].set_ylabel('griz counts / $10^5$') + ax[2].set_ylabel('ugrizy counts / $10^5$') + ax[2].set_xlabel('Redshift') + ax[0].set_xlim(0, 3) + fig.tight_layout() + fig.subplots_adjust(hspace=0.05) + fig.savefig(filename) + plt.close(fig) + +def make_initial_nz(filename): + dc2_file = "dc2_validation.hdf5" + buzzard_file = "buzzard_validation.hdf5" + if not os.path.exists(buzzard_file): + print("Data not downloaded for colour-colour plot - not overwriting") + print("Download from https://portal.nersc.gov/cfs/lsst/txpipe/tomo_challenge_data/ugrizy_buzzard/validation.hdf5") + print("and https://portal.nersc.gov/cfs/lsst/txpipe/tomo_challenge_data/griz/validation.hdf5") + return + + #buzz = h5py.File(buzzard_file) + #dc2 = h5py.File(dc2_file) + buzz = h5py.File(buzzard_file, 'r') + dc2 = h5py.File(dc2_file, 'r') + buzz_z = buzz['redshift_true'][:] + dc2_z = dc2['redshift_true'][:] + fig, ax = plt.subplots(figsize=(5,4)) + w1 = np.repeat(1e-5, buzz_z.size) + w2 = np.repeat(1e-5, dc2_z.size) + ax.hist(buzz_z, bins=50, histtype='step', label='Buzzard', linewidth=3, weights=w1) + del buzz_z + dc2_z = dc2['redshift_true'][:] + ax.hist(dc2_z, bins=50, histtype='step', label='CosmoDC2', linewidth=3, weights=w2, alpha=0.7) + ax.set_xlabel("z") + ax.set_ylabel("Counts / $10^5$") + ax.legend(frameon=True) + fig.tight_layout() + fig.savefig(filename) + plt.close(fig) + + +def colour_colour_cat(ax, cat, colour, thin, label, alpha): + if 'g_mag' in cat.keys(): + fmt = '{}_mag' + else: + fmt = 'mcal_mag_{}' + g = cat[fmt.format('g')][:][::thin] + r = cat[fmt.format('r')][:][::thin] + i = cat[fmt.format('i')][:][::thin] + z = cat[fmt.format('z')][:][::thin] + + gr = g - r + ri = r - i + gz = g - z + iz = i - z + + ax[0].scatter(gr, ri, c=colour, s=0.5, label=label, alpha=alpha) + ax[1].scatter(gz, iz, c=colour, s=0.5, label=label, alpha=alpha) + + ax[0].set_xlabel("g - r") + ax[0].set_ylabel("r - i") + ax[1].set_xlabel("g - z") + ax[1].set_ylabel("i - z") + + +def make_colour_colour(filename): + dc2_file = "dc2_validation.hdf5" + buzzard_file = "buzzard_validation.hdf5" + if not os.path.exists(buzzard_file): + print("Data not downloaded for colour-colour plot - not overwriting") + print("Download from https://portal.nersc.gov/cfs/lsst/txpipe/tomo_challenge_data/ugrizy_buzzard/validation.hdf5") + print("and https://portal.nersc.gov/cfs/lsst/txpipe/tomo_challenge_data/griz/validation.hdf5") + return + + + fig, ax = plt.subplots(2, 1, figsize=(4, 6)) + + buzz = h5py.File(buzzard_file, 'r') + dc2 = h5py.File(dc2_file, 'r') + + colour_colour_cat(ax, buzz, blue_color, 4000, "Buzzard", alpha=1) + colour_colour_cat(ax, dc2, orange_color, 8000, "CosmoDC2", alpha=0.5) + + ax[0].legend(frameon=True) + + fig.tight_layout() + fig.savefig(filename) + plt.close(fig) + + +def make_tex_tables(dc2, buzzard, dirname): + for name, data in [("dc2", dc2), ("buzzard", buzzard)]: + for metric in metrics: + fn = f'{dirname}/table_{metric}_{name}.tex' + print(fn) + make_table(data, metric, fn) + + +def find_best(data, nbin, methods): + + best = collections.defaultdict(lambda: (-np.inf, "")) + for (name, bands, bins, metric), score in data.items(): + if name not in methods: + continue + if bins != nbin: + continue + # print(metric, bands, best[metric, bands, bins], (score, name), max(best[metric, bands, bins], (score, name))) + best[metric, bands] = max(best[metric, bands], (score, name)) + return best + +def make_9bin_table(results, filename): + N = np.array([3, 5, 7, 9]) + data = {} + for row in results: + name = row['method'] + bands = row['bands'] + bins = row['bins'] + for metric in metrics: + data[name, bands, bins, metric] = row[metric] + + n = 9 + best1 = find_best(data, n, methods_with_trained_edges) + best2 = find_best(data, n, methods_with_fixed_edges) + f = open(filename, 'w') + + for name in methods_reordered: + disp_name = make_disp_name(name) + row = [disp_name] + for i, bands in enumerate(['riz', 'griz']): + for j, metric in enumerate(metrics): + val = data.get((name, bands, n, metric), np.nan) + if np.isnan(val): + row.append(f"--") + elif val == 0: + row.append(f"*") + else: + if best1[metric, bands][1] == name or best2[metric, bands][1] == name: + row.append(f"\\textbf{{{val:.1f}}}") + print("best ", metric, bands, name) + else: + row.append(f"{val:.1f}") + + f.write(" & ".join(row)) + f.write("\\\\ \n") + if name == methods_with_trained_edges[-1]: + f.write("\\hline\n") + f.close() + + +def make_metric_grid(data_set, bands): + + # cut doen to the correct bands + data_set = data_set[data_set['bands'] == bands] + metrics = ['SNR_ww','SNR_gg','SNR_3x2','FOM_ww','FOM_gg','FOM_3x2','FOM_DETF_ww','FOM_DETF_gg','FOM_DETF_3x2'] + bins = [3, 5, 7, 9] + + nmetric = len(metrics) + nbin = len(bins) + + nrow = nbin * nmetric + row_meanings = [(b, metric) for b in bins for metric in metrics] + row_labels = [f'n={b} {metric}' for b in bins for metric in metrics] + + methods = np.unique(data_set['method']) + ncol = len(methods) + + grid = np.zeros((nrow, ncol), dtype=int) + for i, (row, row_label) in enumerate(zip(row_meanings, row_labels)): + b, metric = row + d = data_set[data_set['bins']==b] + # check that the ordering is the same. should be + assert (d['method'] == method_names).all() + ranks = len(method_names) - scipy.stats.rankdata(d[metric]) + 1 + grid[i, :] = ranks + + return row_labels, grid + +def plot_rank_grid(dcz, buzz, filename): + fig, axes = plt.subplots(2, 2, figsize=(14.5, 13)) + # make_metric_grid(dc2, 'riz') + for i, (data_set_name, data_set) in enumerate([("CosmoDC2", dc2), ("Buzzard", buzz)]): + for j, bands in enumerate(["riz", "griz"]): + row_labels, grid = make_metric_grid(data_set, bands) + im = axes[i, j].imshow(grid.T, cmap='summer_r') + ax = axes[i, j] + + if i == 0: + ax.title.set_text(f"{bands}") + + xlabels = row_labels if i == 1 else [] + + ylabels = [make_disp_name_plot(m) for m in method_names] if j == 0 else [] + ax.set_yticks(np.arange(len(method_names))) + ax.set_yticklabels(ylabels, fontsize=10) + ax.tick_params('y', length=0, width=1) + ax.tick_params('y', length=0, width=1, which='minor') + + # The major ticks, which we use for the text + ax.set_xticks(np.arange(len(row_labels))) + ax.set_xticklabels(xlabels, fontsize=10, rotation=90) + ax.tick_params('x', length=0, width=1, which='major') + + # The minor, which we use for the tick itself + ax.set_xticks(np.arange(len(row_labels))+0.5, minor=True) + ax.set_xticklabels([], minor=True) + minor_length = 10 if i == 1 else 0 + ax.tick_params('x', length=minor_length, width=1, which='minor') + + fig.subplots_adjust(bottom=0.25, hspace=-0.03, wspace=0.03) + + cbar_ax = fig.add_axes([0.15, 0.05, 0.7, 0.05]) + cbar_ax.text(12, -12, "Rank", fontsize=20) + fig.colorbar(im, cax=cbar_ax, orientation='horizontal') + cbar_ax.grid(which='both', color='black') + cbar_ax.tick_params('both', length=0, which='both') + + label_ax = fig.add_axes([0.95, 0.05, 0.05, 0.9]) + label_ax.axis('off') + label_ax.text(-0.75, 0.64, "CosmoDC2", rotation=-90., fontsize=25) + label_ax.text(-0.75, 0.32, "Buzzard", rotation=-90., fontsize=25) + + fig.savefig(filename) + plt.close(fig) + +if __name__ == '__main__': + matplotlib.use('agg') + plt.style.use('StyleSheet.mplstyle') + + dc2 = load_table('cosmodc2') + buzzard = load_table('buzzard') + plot_metric_grid(dc2, "dc2", "riz", "metric_grid_dc2_riz.pdf") + plot_metric_grid(dc2, "dc2", "griz", "metric_grid_dc2_griz.pdf") + plot_metric_grid(buzzard, "buzzard", "riz", "metric_grid_buzzard_riz.pdf") + plot_metric_grid(buzzard, "buzzard", "griz", "metric_grid_buzzard_griz.pdf") + plot_metric_comparisons(dc2, buzzard, "metric_comparisons.pdf") + plot_g_band_loss(dc2, buzzard, "g_band_loss.pdf") + make_tex_tables(dc2, buzzard, 'tables') + plot_edge_type_comparison(dc2, "edge_comparison.pdf") + plot_funbins_nz('funbins_nz.pdf') + make_colour_colour("colour_colour.pdf") + make_initial_nz("initial_data.pdf") + make_9bin_table(buzzard, "9bin_buzzard.tex") + make_9bin_table(dc2, "9bin_dc2.tex") + plot_rank_grid(dc2, buzzard, "rank_grid.pdf") + + + diff --git a/paper/results/metric_comparisons.pdf b/paper/results/metric_comparisons.pdf new file mode 100644 index 00000000..60899321 Binary files /dev/null and b/paper/results/metric_comparisons.pdf differ diff --git a/paper/results/metric_grid_buzzard_griz.pdf b/paper/results/metric_grid_buzzard_griz.pdf new file mode 100644 index 00000000..080a78c2 Binary files /dev/null and b/paper/results/metric_grid_buzzard_griz.pdf differ diff --git a/paper/results/metric_grid_buzzard_riz.pdf b/paper/results/metric_grid_buzzard_riz.pdf new file mode 100644 index 00000000..eb38cc25 Binary files /dev/null and b/paper/results/metric_grid_buzzard_riz.pdf differ diff --git a/paper/results/metric_grid_dc2_griz.pdf b/paper/results/metric_grid_dc2_griz.pdf new file mode 100644 index 00000000..a80fcd3a Binary files /dev/null and b/paper/results/metric_grid_dc2_griz.pdf differ diff --git a/paper/results/metric_grid_dc2_riz.pdf b/paper/results/metric_grid_dc2_riz.pdf new file mode 100644 index 00000000..884eb343 Binary files /dev/null and b/paper/results/metric_grid_dc2_riz.pdf differ diff --git a/paper/results/nzbinned_dc2_funbins.pdf b/paper/results/nzbinned_dc2_funbins.pdf new file mode 100644 index 00000000..2d1f9969 Binary files /dev/null and b/paper/results/nzbinned_dc2_funbins.pdf differ diff --git a/paper/results/nzoverlap_dc2_funbins.pdf b/paper/results/nzoverlap_dc2_funbins.pdf new file mode 100644 index 00000000..963fdc5a Binary files /dev/null and b/paper/results/nzoverlap_dc2_funbins.pdf differ diff --git a/paper/results/output_buzzard_FIEGE_validation_griz.txt b/paper/results/output_buzzard_FIEGE_validation_griz.txt new file mode 100644 index 00000000..19ee83dd --- /dev/null +++ b/paper/results/output_buzzard_FIEGE_validation_griz.txt @@ -0,0 +1,9 @@ +method run SNR_ww FOM_ww FOM_DETF_ww SNR_gg FOM_gg FOM_DETF_gg SNR_3x2 FOM_3x2 FOM_DETF_3x2 +FIEGE equalN3 257.610560561842 7.719340617204937 0.44135926258035885 1148.2424277855246 186.83480214166903 2.28437206968207 1149.5959369512566 686.3742201147552 27.523132386657778 +FIEGE equalN5 262.6383455700102 15.65628029736473 0.6188390004060965 1470.9589990603897 592.8903692259867 6.612526990433524 1471.5719213201314 1944.6988933588498 49.08120132923238 +FIEGE equalN7 264.7177988182631 20.078154472203607 0.6929978184859412 1732.359799490672 1107.3862119975763 11.573047235522752 1732.7568090853501 3678.9638592474785 68.63898200022814 +FIEGE equalN9 265.0074447497713 22.472312509298487 0.7326826409866399 1958.892918966971 1653.1135538800568 16.594789630286858 1959.2104964838284 5456.0397796073385 85.02651669611146 +FIEGE equalz3 251.5182963368578 12.017276621448802 0.4115927078799438 986.879738563495 342.1358937111755 3.3926953083313265 990.5588347518658 1758.0668242644733 27.885308190463494 +FIEGE equalz5 259.89933860178513 18.158070411070963 0.6696746346801401 1233.9345800276615 948.1419977337575 8.60672886593733 1235.264418544863 3399.35826300425 45.86710693824952 +FIEGE equalz7 261.7454943240419 21.5726341725619 0.6968534959813457 1439.9426046479437 1751.888638207657 15.169929113037528 1440.6404676433328 6083.356163088732 69.98845863755184 +FIEGE equalz9 263.03907183939566 23.665290279657725 0.7411507282791607 1621.6274867631407 2603.3136327130446 21.931803733529215 1622.1307285854687 8988.896112192864 92.53300461509706 diff --git a/paper/results/output_dc2_FIEGE_validation_riz.txt b/paper/results/output_dc2_FIEGE_validation_riz.txt new file mode 100644 index 00000000..164491f6 --- /dev/null +++ b/paper/results/output_dc2_FIEGE_validation_riz.txt @@ -0,0 +1,9 @@ +method type SNR_ww FOM_ww FOM_DETF_ww SNR_gg FOM_gg FOM_DETF_gg SNR_3x2 FOM_3x2 FOM_DETF_3x2 +FIEGE equalN3 362.3031005859375 31.014156341552734 0.8436658978462219 1099.5775146484375 290.4847106933594 3.5344347953796387 1102.85693359375 1228.0762939453125 42.526424407958984 +FIEGE equalN5 367.451416015625 47.723609924316406 1.1039656400680542 1407.22265625 926.0621337890625 10.040007591247559 1408.95361328125 3129.972900390625 73.82401275634766 +FIEGE equalN7 369.51678466796875 54.788700103759766 1.1960949897766113 1657.8232421875 1674.2548828125 16.713560104370117 1659.1611328125 5941.54833984375 106.3309555053711 +FIEGE equalN9 370.3489074707031 58.6800537109375 1.2497972249984741 1875.894287109375 2422.224365234375 22.999082565307617 1877.038818359375 8822.203125 132.65538024902344 +FIEGE equalz3 345.20782470703125 30.17532730102539 0.7889319658279419 1056.248046875 387.2244567871094 4.057412147521973 1059.971435546875 1795.601806640625 39.77281951904297 +FIEGE equalz5 350.3963928222656 39.23170471191406 0.9390175342559814 1346.4591064453125 1366.442626953125 12.347282409667969 1348.3524169921875 4550.384765625 71.39635467529297 +FIEGE equalz7 351.9446105957031 44.489871978759766 1.0175042152404785 1585.1302490234375 2553.8544921875 21.47812271118164 1586.3897705078125 9273.10546875 115.1651382446289 +FIEGE equalz9 352.68487548828125 47.290122985839844 1.0627068281173706 1789.931884765625 3709.289794921875 30.08506965637207 1790.963623046875 13285.1875 145.6348114013672 diff --git a/paper/results/rank_grid.pdf b/paper/results/rank_grid.pdf new file mode 100644 index 00000000..cd9729ca Binary files /dev/null and b/paper/results/rank_grid.pdf differ diff --git a/paper/results/tables/table_FOM_3x2_buzzard.tex b/paper/results/tables/table_FOM_3x2_buzzard.tex new file mode 100644 index 00000000..88e74e02 --- /dev/null +++ b/paper/results/tables/table_FOM_3x2_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 494.5 & 1963.2 & 3574.4 & 5372.0 & 264.6 & 1910.3 & 3838.3 & 5177.9\\ +{\sc JaxCNN } & 1359.5 & 2896.3 & 5056.4 & -- & 1306.9 & 3264.9 & 5216.4 & 6143.8\\ +{\sc JaxResNet } & 1589.3 & 3209.7 & -- & -- & 1682.2 & 2360.8 & -- & --\\ +{\sc NeuralNetwork1 } & 1799.5 & 4479.8 & 5462.9 & 7304.1 & 1847.1 & 3701.5 & 5262.0 & 7405.5\\ +{\sc NeuralNetwork2 } & 559.5 & 1931.5 & 3598.1 & 6279.2 & 525.0 & 1902.0 & 3167.6 & 4962.9\\ +{\sc PCACluster } & 1427.5 & 3163.0 & 4897.6 & * & 975.4 & 2764.1 & 3722.2 & *\\ +{\sc ZotBin } & 1205.9 & 2558.0 & 4628.4 & 5448.1 & 1418.2 & 2700.9 & 4238.6 & 6086.2\\ +{\sc ZotNet } & 1798.4 & 4237.3 & 5945.4 & 6755.9 & 1779.0 & 3818.7 & 5631.9 & 6686.8\\ +\hline +{\sc AutokerasLSTM } & 909.0 & 1577.2 & 3930.0 & -- & 797.7 & 2494.6 & -- & 5123.5\\ +{\sc CNN } & 378.3 & 1409.9 & 3203.1 & 4789.3 & 406.8 & 1451.6 & 3132.2 & 4641.3\\ +{\sc ENSEMBLE } & 2277.5 & 2277.5 & 5293.3 & 5293.3 & 2153.6 & 2153.6 & 5443.5 & 5443.5\\ +{\sc FunBins } & 880.3 & 2750.0 & 3577.7 & 4542.4 & 942.9 & 3108.8 & 5001.3 & 6017.6\\ +{\sc GPzBinning } & 274.5 & 1637.0 & 3497.0 & 4958.8 & 291.8 & 1391.0 & 3435.8 & 5261.6\\ +{\sc IBandOnly } & 201.7 & 435.4 & 703.5 & 867.6 & 201.7 & 435.4 & 703.5 & 867.6\\ +{\sc LGBM } & 377.9 & 1416.6 & 3255.6 & 4807.2 & 410.1 & 1447.8 & 3084.7 & 4658.0\\ +{\sc LSTM } & 379.9 & 1380.2 & 3260.1 & 4764.1 & 414.3 & 1420.1 & 3081.5 & 4620.1\\ +{\sc MLPQNA } & 596.3 & 2284.0 & 4026.8 & 5300.1 & 688.6 & 2119.9 & 3983.7 & 5637.5\\ +{\sc Stacked Generalization } & 656.6 & 1861.4 & 4377.4 & 6796.2 & 660.8 & 2114.1 & 4980.7 & 7736.9\\ +{\sc PQNLD } & 852.3 & 2390.8 & 4131.3 & 5281.2 & 717.9 & 2150.2 & 4099.0 & 5593.7\\ +{\sc Random } & 5.6 & 5.8 & 6.0 & 6.3 & 5.6 & 5.8 & 6.0 & 6.3\\ +{\sc RandomForest } & 593.1 & 2288.5 & 3982.0 & 5272.6 & 688.9 & 2146.4 & 3980.9 & 5647.6\\ +{\sc SimpleSOM } & 843.7 & 2417.7 & 4138.9 & 5352.9 & 758.9 & 2310.3 & 4254.3 & 5685.9\\ +{\sc FFNN } & 596.3 & 2314.8 & 4020.7 & 5251.9 & 693.0 & 2152.6 & 3987.9 & 5677.1\\ +{\sc TCN } & 738.5 & 2367.4 & 4055.0 & 5414.2 & 797.1 & 2104.8 & 3919.1 & 5613.3\\ +{\sc UTOPIA } & 588.9 & 2298.3 & 4023.5 & 5354.9 & 699.7 & 2215.4 & 4005.4 & 5637.6\\ diff --git a/paper/results/tables/table_FOM_3x2_dc2.tex b/paper/results/tables/table_FOM_3x2_dc2.tex new file mode 100644 index 00000000..11ff7b34 --- /dev/null +++ b/paper/results/tables/table_FOM_3x2_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1098.0 & 3063.0 & 6073.3 & 7919.6 & 898.3 & 1848.4 & 4687.8 & 6603.1\\ +{\sc JaxCNN } & 1000.9 & 3970.2 & 4934.9 & -- & 994.1 & 4316.4 & 6097.0 & --\\ +{\sc JaxResNet } & 858.1 & 3994.5 & 7352.8 & -- & 950.5 & 3497.3 & -- & 6438.7\\ +{\sc NeuralNetwork1 } & 844.9 & 4191.6 & 7170.7 & 8666.6 & 928.6 & 4285.9 & 6794.2 & 7876.3\\ +{\sc NeuralNetwork2 } & 1093.7 & 3020.9 & 4823.5 & 10025.7 & 1028.6 & 3197.9 & 6450.8 & 11023.9\\ +{\sc PCACluster } & 1322.3 & 4473.3 & 5880.1 & * & 2002.6 & 4754.2 & 6602.8 & *\\ +{\sc ZotBin } & 841.1 & 3456.2 & 6887.4 & 8013.3 & 1157.3 & 3693.7 & 6499.7 & 9546.9\\ +{\sc ZotNet } & 844.6 & 3816.7 & 5569.3 & 8150.8 & 1208.2 & 4128.6 & 9040.7 & 9226.3\\ +\hline +{\sc AutokerasLSTM } & 1564.7 & 3336.6 & 5842.4 & -- & 1399.2 & 2977.2 & 7250.1 & 5864.7\\ +{\sc CNN } & 883.8 & 2239.9 & 4189.8 & 7000.4 & 780.8 & 1995.2 & 4825.8 & 7725.6\\ +{\sc ENSEMBLE } & 2921.8 & 2924.3 & 5791.2 & * & * & * & * & *\\ +{\sc FunBins } & 1186.8 & 4158.5 & 7571.3 & 10959.1 & 1622.1 & 5125.2 & 8778.3 & 12668.2\\ +{\sc GPzBinning } & 775.8 & 2226.3 & 4131.2 & 7197.6 & 667.8 & 2050.1 & 4435.2 & 8064.7\\ +{\sc IBandOnly } & 753.4 & 1238.0 & 1423.8 & 1829.9 & 753.4 & 1238.0 & 1423.8 & 1829.9\\ +{\sc LGBM } & 868.6 & 2280.7 & 4336.2 & 7215.1 & 781.0 & 2038.6 & 4684.7 & 7933.4\\ +{\sc LSTM } & 865.0 & 2244.0 & 4451.3 & 7008.3 & 783.0 & 2004.4 & 4829.2 & 7997.3\\ +{\sc MLPQNA } & 1266.3 & 2930.0 & 5761.0 & 8624.5 & 1253.1 & 3140.7 & 6348.1 & 9076.2\\ +{\sc Stacked Generalization } & 610.2 & 2159.4 & 4584.1 & 8038.7 & 685.3 & 2262.9 & 4801.2 & 9386.8\\ +{\sc PQNLD } & 1371.4 & 3052.7 & 5005.6 & 7666.6 & 1204.6 & 3155.7 & 6177.9 & 9353.9\\ +{\sc Random } & 17.4 & 17.5 & 17.5 & 17.7 & 17.4 & 17.5 & 17.5 & 17.7\\ +{\sc RandomForest } & 1267.5 & 2976.1 & 5690.6 & 8447.7 & 1254.6 & 3146.6 & 6370.5 & 9265.4\\ +{\sc SimpleSOM } & 1375.6 & 3061.6 & 5017.5 & 7244.5 & 1313.4 & 3250.3 & 6417.5 & 9279.8\\ +{\sc FFNN } & 1269.8 & 2855.7 & 5559.7 & 8170.0 & 1258.4 & 3132.6 & 6547.1 & 9332.9\\ +{\sc TCN } & 1371.0 & 2986.6 & 5592.5 & 7955.5 & 1325.9 & 3184.2 & 6267.9 & 9100.2\\ +{\sc UTOPIA } & 1261.7 & 3022.7 & 5627.9 & 8148.8 & 1258.1 & 3226.8 & 6540.5 & 9537.2\\ diff --git a/paper/results/tables/table_FOM_DETF_3x2_buzzard.tex b/paper/results/tables/table_FOM_DETF_3x2_buzzard.tex new file mode 100644 index 00000000..246c161e --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_3x2_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 30.4 & 47.8 & 57.2 & 74.9 & 25.0 & 48.5 & 63.4 & 75.0\\ +{\sc JaxCNN } & 38.6 & 59.0 & 69.7 & -- & 43.7 & 71.5 & 83.1 & 95.4\\ +{\sc JaxResNet } & 39.6 & 61.7 & -- & -- & 45.9 & 63.3 & -- & --\\ +{\sc NeuralNetwork1 } & 42.8 & 66.8 & 82.0 & 93.7 & 46.6 & 74.1 & 90.9 & 105.4\\ +{\sc NeuralNetwork2 } & 21.9 & 52.1 & 60.8 & 76.5 & 22.2 & 47.0 & 59.9 & 73.9\\ +{\sc PCACluster } & 22.3 & 49.2 & 56.4 & * & 21.0 & 44.8 & 57.6 & *\\ +{\sc ZotBin } & 30.8 & 57.4 & 68.2 & 76.5 & 44.6 & 66.2 & 79.0 & 89.4\\ +{\sc ZotNet } & 40.3 & 62.4 & 75.7 & 86.0 & 48.0 & 71.0 & 86.6 & 98.4\\ +\hline +{\sc AutokerasLSTM } & 22.3 & 32.7 & 61.8 & -- & 26.3 & 43.4 & -- & 72.2\\ +{\sc CNN } & 18.0 & 36.9 & 59.8 & 70.3 & 17.7 & 40.7 & 62.6 & 74.5\\ +{\sc ENSEMBLE } & 53.8 & 53.8 & 74.6 & 74.6 & 52.2 & 52.2 & 82.9 & 82.9\\ +{\sc FunBins } & 23.2 & 50.5 & 65.0 & 72.2 & 26.0 & 57.4 & 81.3 & 91.7\\ +{\sc GPzBinning } & 16.8 & 46.4 & 61.4 & 70.7 & 17.6 & 39.7 & 67.0 & 82.5\\ +{\sc IBandOnly } & 11.4 & 15.9 & 20.8 & 22.0 & 11.4 & 15.9 & 20.8 & 22.0\\ +{\sc LGBM } & 18.2 & 37.1 & 60.9 & 70.7 & 17.8 & 39.5 & 61.6 & 75.4\\ +{\sc LSTM } & 18.0 & 35.3 & 61.1 & 69.9 & 17.9 & 38.8 & 60.9 & 74.7\\ +{\sc MLPQNA } & 24.1 & 54.2 & 65.7 & 73.2 & 27.2 & 51.5 & 70.4 & 83.4\\ +{\sc Stacked Generalization } & 18.4 & 33.0 & 56.1 & 85.3 & 22.1 & 38.8 & 68.3 & 97.2\\ +{\sc PQNLD } & 26.1 & 45.8 & 62.5 & 70.6 & 27.9 & 51.5 & 72.3 & 84.3\\ +{\sc Random } & 0.8 & 0.8 & 0.8 & 0.8 & 0.8 & 0.8 & 0.8 & 0.8\\ +{\sc RandomForest } & 23.9 & 53.4 & 65.0 & 72.5 & 27.3 & 52.1 & 70.4 & 83.5\\ +{\sc SimpleSOM } & 26.1 & 46.3 & 64.3 & 70.7 & 28.3 & 51.9 & 70.8 & 84.7\\ +{\sc FFNN } & 23.9 & 53.4 & 65.3 & 72.4 & 27.1 & 52.1 & 70.0 & 83.5\\ +{\sc TCN } & 26.6 & 53.7 & 65.7 & 74.6 & 27.0 & 49.2 & 69.4 & 82.4\\ +{\sc UTOPIA } & 24.9 & 53.8 & 65.3 & 73.6 & 27.9 & 52.9 & 70.1 & 83.1\\ diff --git a/paper/results/tables/table_FOM_DETF_3x2_dc2.tex b/paper/results/tables/table_FOM_DETF_3x2_dc2.tex new file mode 100644 index 00000000..1efe78ba --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_3x2_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 38.0 & 52.1 & 94.4 & 101.6 & 34.9 & 45.0 & 91.6 & 100.3\\ +{\sc JaxCNN } & 59.9 & 101.9 & 105.2 & -- & 79.7 & 125.2 & 150.0 & --\\ +{\sc JaxResNet } & 73.7 & 111.1 & 131.6 & -- & 82.2 & 126.0 & -- & 161.5\\ +{\sc NeuralNetwork1 } & 76.3 & 117.6 & 135.8 & 109.9 & 81.9 & 132.9 & 158.0 & 96.9\\ +{\sc NeuralNetwork2 } & 30.5 & 48.0 & 57.8 & 136.1 & 49.4 & 102.7 & 122.2 & 140.0\\ +{\sc PCACluster } & 29.5 & 68.1 & 75.8 & * & 50.1 & 72.7 & 90.8 & *\\ +{\sc ZotBin } & 64.8 & 106.4 & 121.8 & 135.3 & 77.6 & 120.0 & 141.8 & 154.7\\ +{\sc ZotNet } & 73.6 & 111.2 & 131.8 & 145.9 & 83.7 & 128.5 & 150.1 & 167.2\\ +\hline +{\sc AutokerasLSTM } & 31.1 & 74.9 & 103.4 & -- & 44.1 & 67.5 & 122.2 & 98.4\\ +{\sc CNN } & 27.1 & 50.8 & 76.7 & 103.3 & 30.5 & 57.7 & 95.4 & 122.4\\ +{\sc ENSEMBLE } & 65.6 & 65.6 & 94.8 & * & * & * & * & *\\ +{\sc FunBins } & 36.8 & 82.5 & 122.1 & 141.8 & 42.1 & 100.4 & 142.5 & 167.2\\ +{\sc GPzBinning } & 26.2 & 49.7 & 80.8 & 111.7 & 27.8 & 55.3 & 87.2 & 126.9\\ +{\sc IBandOnly } & 38.0 & 50.0 & 54.4 & 57.3 & 38.0 & 50.0 & 54.4 & 57.3\\ +{\sc LGBM } & 27.0 & 50.8 & 78.8 & 108.2 & 30.3 & 57.4 & 92.9 & 125.2\\ +{\sc LSTM } & 26.7 & 51.1 & 81.4 & 103.6 & 30.2 & 57.1 & 95.9 & 126.9\\ +{\sc MLPQNA } & 39.3 & 64.7 & 93.2 & 121.8 & 42.8 & 72.2 & 109.0 & 133.7\\ +{\sc Stacked Generalization } & 35.3 & 60.5 & 83.5 & 120.4 & 39.4 & 63.9 & 93.1 & 148.9\\ +{\sc PQNLD } & 39.5 & 60.5 & 77.7 & 105.4 & 42.9 & 71.0 & 105.9 & 133.8\\ +{\sc Random } & 1.2 & 1.2 & 1.2 & 1.2 & 1.2 & 1.2 & 1.2 & 1.2\\ +{\sc RandomForest } & 39.5 & 65.2 & 93.2 & 118.5 & 43.0 & 72.8 & 110.1 & 136.5\\ +{\sc SimpleSOM } & 39.5 & 59.9 & 77.9 & 98.5 & 42.2 & 73.2 & 108.0 & 134.8\\ +{\sc FFNN } & 39.0 & 64.3 & 90.3 & 114.7 & 43.0 & 72.0 & 112.3 & 137.2\\ +{\sc TCN } & 40.0 & 65.3 & 90.9 & 110.5 & 44.1 & 72.8 & 108.0 & 134.0\\ +{\sc UTOPIA } & 39.0 & 63.7 & 90.8 & 112.2 & 43.1 & 74.0 & 112.8 & 139.3\\ diff --git a/paper/results/tables/table_FOM_DETF_gg_buzzard.tex b/paper/results/tables/table_FOM_DETF_gg_buzzard.tex new file mode 100644 index 00000000..d8317dde --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_gg_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 3.2 & 6.9 & 10.1 & 16.5 & 2.3 & 6.4 & 10.8 & 14.3\\ +{\sc JaxCNN } & 4.3 & 9.0 & 12.7 & -- & 5.3 & 11.9 & 16.0 & 21.2\\ +{\sc JaxResNet } & 4.5 & 9.7 & -- & -- & 5.7 & 9.2 & -- & --\\ +{\sc NeuralNetwork1 } & 5.2 & 11.0 & 15.9 & 19.9 & 5.9 & 12.8 & 18.5 & 23.4\\ +{\sc NeuralNetwork2 } & 1.4 & 7.4 & 10.5 & 16.0 & 1.2 & 6.5 & 10.1 & 14.0\\ +{\sc PCACluster } & 2.4 & 7.9 & 10.1 & * & 2.2 & 7.2 & 9.4 & *\\ +{\sc ZotBin } & 3.2 & 8.7 & 12.4 & 15.1 & 5.9 & 11.4 & 16.6 & 20.1\\ +{\sc ZotNet } & 4.8 & 10.5 & 13.7 & 17.4 & 6.1 & 11.9 & 17.7 & 25.0\\ +\hline +{\sc AutokerasLSTM } & 2.2 & 4.5 & 10.1 & -- & 2.3 & 6.1 & -- & 14.4\\ +{\sc CNN } & 0.9 & 4.7 & 9.8 & 13.1 & 0.8 & 4.7 & 9.9 & 13.7\\ +{\sc ENSEMBLE } & 7.9 & 7.9 & 14.2 & 14.2 & 7.1 & 7.1 & 15.9 & 15.9\\ +{\sc FunBins } & 2.3 & 7.8 & 10.3 & 12.4 & 2.8 & 8.7 & 14.3 & 18.1\\ +{\sc GPzBinning } & 0.5 & 5.9 & 10.1 & 12.8 & 0.5 & 4.6 & 10.6 & 15.3\\ +{\sc IBandOnly } & 0.7 & 1.3 & 1.9 & 2.2 & 0.7 & 1.3 & 1.9 & 2.2\\ +{\sc LGBM } & 1.0 & 4.7 & 10.0 & 13.2 & 0.8 & 4.5 & 9.6 & 13.9\\ +{\sc LSTM } & 0.9 & 4.6 & 10.1 & 13.0 & 0.8 & 4.4 & 9.6 & 13.8\\ +{\sc MLPQNA } & 1.9 & 8.0 & 11.6 & 14.3 & 2.3 & 7.0 & 12.1 & 16.4\\ +{\sc Stacked Generalization } & 1.0 & 3.8 & 9.6 & 16.3 & 1.4 & 4.5 & 13.1 & 21.1\\ +{\sc PQNLD } & 2.6 & 6.7 & 10.9 & 13.4 & 2.4 & 7.0 & 12.2 & 15.9\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 1.9 & 7.8 & 11.4 & 14.1 & 2.3 & 7.1 & 12.0 & 16.3\\ +{\sc SimpleSOM } & 2.6 & 6.8 & 11.2 & 13.5 & 2.5 & 7.3 & 12.1 & 15.9\\ +{\sc FFNN } & 1.9 & 7.9 & 11.6 & 14.1 & 2.3 & 7.1 & 12.0 & 16.4\\ +{\sc TCN } & 2.5 & 7.9 & 11.6 & 14.6 & 2.3 & 6.7 & 12.0 & 16.3\\ +{\sc UTOPIA } & 2.2 & 7.8 & 11.3 & 13.9 & 2.4 & 7.2 & 12.0 & 16.0\\ diff --git a/paper/results/tables/table_FOM_DETF_gg_dc2.tex b/paper/results/tables/table_FOM_DETF_gg_dc2.tex new file mode 100644 index 00000000..b93399f5 --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_gg_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 4.1 & 7.3 & 14.0 & 16.2 & 3.2 & 4.6 & 11.3 & 13.9\\ +{\sc JaxCNN } & 3.8 & 12.7 & 13.8 & -- & 4.8 & 15.8 & 22.6 & --\\ +{\sc JaxResNet } & 4.6 & 13.9 & 20.0 & -- & 5.1 & 15.2 & -- & 26.3\\ +{\sc NeuralNetwork1 } & 5.2 & 14.9 & 20.9 & 18.1 & 5.7 & 16.5 & 25.7 & 15.9\\ +{\sc NeuralNetwork2 } & 4.0 & 7.8 & 11.0 & 22.4 & 2.4 & 9.6 & 15.4 & 25.8\\ +{\sc PCACluster } & 2.7 & 9.2 & 11.5 & * & 3.6 & 9.7 & 13.3 & *\\ +{\sc ZotBin } & 3.7 & 13.0 & 18.1 & 23.3 & 4.8 & 14.6 & 21.5 & 26.2\\ +{\sc ZotNet } & 4.7 & 14.2 & 21.2 & 25.0 & 5.5 & 16.2 & 24.3 & 31.4\\ +\hline +{\sc AutokerasLSTM } & 3.4 & 10.6 & 14.6 & -- & 4.0 & 6.9 & 18.2 & 15.8\\ +{\sc CNN } & 0.8 & 6.6 & 11.8 & 16.9 & 1.6 & 7.1 & 14.0 & 19.8\\ +{\sc ENSEMBLE } & 9.4 & 9.4 & 15.2 & * & * & * & * & *\\ +{\sc FunBins } & 4.3 & 11.8 & 18.5 & 25.6 & 4.6 & 14.4 & 23.0 & 31.4\\ +{\sc GPzBinning } & 0.4 & 6.3 & 11.4 & 16.9 & 0.4 & 6.5 & 13.0 & 20.2\\ +{\sc IBandOnly } & 2.6 & 4.8 & 5.5 & 6.1 & 2.6 & 4.8 & 5.5 & 6.1\\ +{\sc LGBM } & 0.8 & 6.6 & 12.0 & 17.8 & 1.6 & 7.1 & 13.7 & 20.2\\ +{\sc LSTM } & 0.8 & 6.7 & 12.2 & 17.0 & 1.6 & 7.1 & 13.9 & 20.3\\ +{\sc MLPQNA } & 3.7 & 9.3 & 14.9 & 20.0 & 3.6 & 10.0 & 16.9 & 22.3\\ +{\sc Stacked Generalization } & 2.1 & 5.7 & 11.0 & 19.3 & 2.2 & 5.6 & 11.4 & 25.0\\ +{\sc PQNLD } & 3.3 & 8.4 & 12.3 & 16.8 & 3.6 & 9.9 & 16.4 & 22.4\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 3.7 & 9.4 & 14.9 & 19.9 & 3.6 & 10.0 & 17.0 & 22.9\\ +{\sc SimpleSOM } & 3.3 & 8.3 & 12.3 & 16.0 & 3.3 & 10.2 & 16.8 & 22.6\\ +{\sc FFNN } & 3.7 & 9.2 & 14.4 & 19.0 & 3.6 & 10.0 & 17.2 & 22.7\\ +{\sc TCN } & 4.0 & 9.4 & 14.7 & 18.9 & 4.1 & 10.2 & 16.7 & 22.5\\ +{\sc UTOPIA } & 3.7 & 9.2 & 14.2 & 18.5 & 3.6 & 10.2 & 17.2 & 23.1\\ diff --git a/paper/results/tables/table_FOM_DETF_ww_buzzard.tex b/paper/results/tables/table_FOM_DETF_ww_buzzard.tex new file mode 100644 index 00000000..56d29215 --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_ww_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 0.1 & 0.3 & 0.3 & 0.4 & 0.1 & 0.4 & 0.5 & 0.6\\ +{\sc JaxCNN } & 0.2 & 0.4 & 0.5 & -- & 0.2 & 0.5 & 0.6 & 0.6\\ +{\sc JaxResNet } & 0.2 & 0.4 & -- & -- & 0.2 & 0.5 & -- & --\\ +{\sc NeuralNetwork1 } & 0.2 & 0.5 & 0.5 & 0.5 & 0.2 & 0.6 & 0.6 & 0.6\\ +{\sc NeuralNetwork2 } & 0.1 & 0.4 & 0.4 & 0.5 & 0.1 & 0.3 & 0.4 & 0.5\\ +{\sc PCACluster } & 0.2 & 0.3 & 0.2 & * & 0.1 & 0.1 & 0.2 & *\\ +{\sc ZotBin } & 0.3 & 0.4 & 0.4 & 0.4 & 0.2 & 0.4 & 0.5 & 0.5\\ +{\sc ZotNet } & 0.2 & 0.4 & 0.5 & 0.5 & 0.2 & 0.5 & 0.5 & 0.5\\ +\hline +{\sc AutokerasLSTM } & 0.2 & 0.4 & 0.3 & -- & 0.3 & 0.2 & -- & 0.5\\ +{\sc CNN } & 0.1 & 0.4 & 0.5 & 0.5 & 0.1 & 0.4 & 0.6 & 0.6\\ +{\sc ENSEMBLE } & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.5 & 0.6 & 0.6\\ +{\sc FunBins } & 0.2 & 0.4 & 0.4 & 0.5 & 0.4 & 0.5 & 0.6 & 0.6\\ +{\sc GPzBinning } & 0.1 & 0.4 & 0.5 & 0.5 & 0.1 & 0.5 & 0.6 & 0.6\\ +{\sc IBandOnly } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc LGBM } & 0.1 & 0.4 & 0.5 & 0.5 & 0.1 & 0.4 & 0.6 & 0.6\\ +{\sc LSTM } & 0.1 & 0.4 & 0.5 & 0.5 & 0.1 & 0.4 & 0.5 & 0.6\\ +{\sc MLPQNA } & 0.3 & 0.5 & 0.5 & 0.5 & 0.4 & 0.5 & 0.6 & 0.6\\ +{\sc Stacked Generalization } & 0.1 & 0.3 & 0.4 & 0.5 & 0.1 & 0.4 & 0.5 & 0.6\\ +{\sc PQNLD } & 0.3 & 0.4 & 0.5 & 0.5 & 0.4 & 0.6 & 0.6 & 0.6\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 0.3 & 0.4 & 0.5 & 0.5 & 0.4 & 0.5 & 0.6 & 0.6\\ +{\sc SimpleSOM } & 0.3 & 0.4 & 0.5 & 0.5 & 0.4 & 0.6 & 0.6 & 0.6\\ +{\sc FFNN } & 0.3 & 0.4 & 0.5 & 0.5 & 0.4 & 0.5 & 0.6 & 0.6\\ +{\sc TCN } & 0.3 & 0.4 & 0.5 & 0.5 & 0.3 & 0.5 & 0.6 & 0.6\\ +{\sc UTOPIA } & 0.3 & 0.4 & 0.5 & 0.5 & 0.4 & 0.5 & 0.6 & 0.6\\ diff --git a/paper/results/tables/table_FOM_DETF_ww_dc2.tex b/paper/results/tables/table_FOM_DETF_ww_dc2.tex new file mode 100644 index 00000000..7a7eb412 --- /dev/null +++ b/paper/results/tables/table_FOM_DETF_ww_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 0.6 & 0.6 & 0.7 & 0.7 & 0.3 & 0.5 & 0.6 & 0.6\\ +{\sc JaxCNN } & 0.4 & 0.7 & 0.8 & -- & 0.2 & 1.0 & 1.1 & --\\ +{\sc JaxResNet } & 0.1 & 0.8 & 0.9 & -- & 0.1 & 0.9 & -- & 1.1\\ +{\sc NeuralNetwork1 } & 0.1 & 0.9 & 0.9 & 0.7 & 0.1 & 1.0 & 1.1 & 0.7\\ +{\sc NeuralNetwork2 } & 0.6 & 0.6 & 0.6 & 0.9 & 0.4 & 0.7 & 0.7 & 0.9\\ +{\sc PCACluster } & 0.2 & 0.3 & 0.4 & * & 0.4 & 0.3 & 0.6 & *\\ +{\sc ZotBin } & 0.3 & 0.7 & 0.8 & 0.7 & 0.2 & 0.8 & 0.9 & 0.9\\ +{\sc ZotNet } & 0.2 & 0.8 & 0.9 & 0.9 & 0.2 & 0.9 & 1.0 & 1.0\\ +\hline +{\sc AutokerasLSTM } & 0.4 & 0.8 & 0.8 & -- & 0.7 & 0.3 & 1.0 & 1.0\\ +{\sc CNN } & 0.2 & 0.8 & 0.9 & 0.9 & 0.2 & 0.9 & 1.0 & 1.1\\ +{\sc ENSEMBLE } & 0.9 & 0.9 & 0.9 & * & * & * & * & *\\ +{\sc FunBins } & 0.7 & 0.8 & 0.9 & 0.9 & 0.9 & 1.0 & 1.2 & 1.2\\ +{\sc GPzBinning } & 0.2 & 0.7 & 0.8 & 0.9 & 0.2 & 0.9 & 1.1 & 1.1\\ +{\sc IBandOnly } & 0.0 & 0.1 & 0.1 & 0.2 & 0.0 & 0.1 & 0.1 & 0.2\\ +{\sc LGBM } & 0.2 & 0.8 & 0.9 & 0.9 & 0.2 & 0.9 & 1.1 & 1.1\\ +{\sc LSTM } & 0.2 & 0.8 & 0.9 & 0.9 & 0.2 & 0.9 & 1.0 & 1.1\\ +{\sc MLPQNA } & 0.7 & 0.9 & 0.9 & 0.9 & 0.8 & 1.1 & 1.1 & 1.2\\ +{\sc Stacked Generalization } & 0.1 & 0.4 & 0.8 & 0.9 & 0.1 & 0.5 & 0.9 & 1.1\\ +{\sc PQNLD } & 0.6 & 0.8 & 0.9 & 0.9 & 0.8 & 1.1 & 1.1 & 1.2\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 0.7 & 0.9 & 0.9 & 0.9 & 0.8 & 1.1 & 1.1 & 1.2\\ +{\sc SimpleSOM } & 0.6 & 0.8 & 0.9 & 0.9 & 0.8 & 1.1 & 1.1 & 1.2\\ +{\sc FFNN } & 0.7 & 0.9 & 0.9 & 0.9 & 0.8 & 1.0 & 1.1 & 1.1\\ +{\sc TCN } & 0.7 & 0.9 & 0.9 & 0.9 & 0.8 & 1.0 & 1.1 & 1.1\\ +{\sc UTOPIA } & 0.6 & 0.8 & 0.9 & 0.9 & 0.8 & 1.0 & 1.1 & 1.2\\ diff --git a/paper/results/tables/table_FOM_gg_buzzard.tex b/paper/results/tables/table_FOM_gg_buzzard.tex new file mode 100644 index 00000000..eed85b6f --- /dev/null +++ b/paper/results/tables/table_FOM_gg_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 215.9 & 632.9 & 1017.6 & 1728.2 & 123.9 & 584.4 & 1066.6 & 1462.7\\ +{\sc JaxCNN } & 421.0 & 872.2 & 1335.7 & -- & 475.5 & 1102.0 & 1611.3 & 2152.7\\ +{\sc JaxResNet } & 468.9 & 947.5 & -- & -- & 551.6 & 830.5 & -- & --\\ +{\sc NeuralNetwork1 } & 530.2 & 1168.2 & 1699.8 & 2168.6 & 588.3 & 1224.5 & 1870.1 & 2502.8\\ +{\sc NeuralNetwork2 } & 111.6 & 661.3 & 1037.4 & 1705.4 & 93.4 & 606.6 & 976.3 & 1417.1\\ +{\sc PCACluster } & 235.1 & 819.8 & 1144.1 & * & 211.6 & 752.6 & 996.3 & *\\ +{\sc ZotBin } & 264.1 & 821.1 & 1272.3 & 1584.9 & 527.4 & 1013.5 & 1599.9 & 2084.0\\ +{\sc ZotNet } & 505.1 & 1114.5 & 1489.4 & 1897.9 & 585.3 & 1179.9 & 1861.3 & 2672.5\\ +\hline +{\sc AutokerasLSTM } & 200.9 & 418.1 & 1059.0 & -- & 194.0 & 634.1 & -- & 1499.6\\ +{\sc CNN } & 73.2 & 419.5 & 950.2 & 1335.4 & 65.2 & 421.0 & 941.9 & 1364.9\\ +{\sc ENSEMBLE } & 723.4 & 723.4 & 1470.2 & 1470.2 & 650.7 & 650.7 & 1609.7 & 1609.7\\ +{\sc FunBins } & 204.1 & 799.2 & 1045.6 & 1297.3 & 238.5 & 906.3 & 1494.2 & 1913.5\\ +{\sc GPzBinning } & 37.1 & 524.9 & 997.6 & 1328.6 & 33.7 & 405.8 & 1016.5 & 1524.0\\ +{\sc IBandOnly } & 68.2 & 127.8 & 194.6 & 227.8 & 68.2 & 127.8 & 194.6 & 227.8\\ +{\sc LGBM } & 73.3 & 421.0 & 968.2 & 1345.8 & 65.5 & 410.7 & 919.0 & 1382.5\\ +{\sc LSTM } & 73.3 & 404.6 & 975.2 & 1330.7 & 65.8 & 400.3 & 911.9 & 1366.0\\ +{\sc MLPQNA } & 153.3 & 732.2 & 1159.4 & 1479.6 & 184.8 & 639.4 & 1177.0 & 1659.0\\ +{\sc Stacked Generalization } & 86.9 & 349.4 & 969.6 & 1748.2 & 117.3 & 407.1 & 1325.9 & 2254.6\\ +{\sc PQNLD } & 223.0 & 650.2 & 1109.7 & 1406.6 & 197.9 & 638.9 & 1195.8 & 1611.9\\ +{\sc Random } & 0.3 & 0.3 & 0.4 & 0.4 & 0.3 & 0.3 & 0.4 & 0.4\\ +{\sc RandomForest } & 153.2 & 722.7 & 1144.9 & 1462.0 & 185.6 & 648.4 & 1175.4 & 1658.2\\ +{\sc SimpleSOM } & 222.1 & 660.3 & 1137.9 & 1415.2 & 211.0 & 680.2 & 1204.8 & 1622.2\\ +{\sc FFNN } & 153.5 & 730.3 & 1160.1 & 1465.8 & 184.9 & 652.0 & 1169.2 & 1668.3\\ +{\sc TCN } & 207.1 & 737.9 & 1162.0 & 1514.0 & 198.5 & 616.6 & 1165.2 & 1651.7\\ +{\sc UTOPIA } & 172.7 & 720.1 & 1139.5 & 1457.9 & 194.8 & 667.2 & 1175.1 & 1632.7\\ diff --git a/paper/results/tables/table_FOM_gg_dc2.tex b/paper/results/tables/table_FOM_gg_dc2.tex new file mode 100644 index 00000000..2b169ec6 --- /dev/null +++ b/paper/results/tables/table_FOM_gg_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 352.6 & 746.7 & 1499.7 & 1830.7 & 273.7 & 447.6 & 1134.7 & 1483.8\\ +{\sc JaxCNN } & 254.6 & 1162.7 & 1366.8 & -- & 316.7 & 1355.9 & 2073.5 & --\\ +{\sc JaxResNet } & 291.8 & 1224.9 & 2105.6 & -- & 324.6 & 1204.3 & -- & 2409.0\\ +{\sc NeuralNetwork1 } & 310.4 & 1307.9 & 2166.1 & 2043.7 & 345.5 & 1426.3 & 2444.3 & 1793.6\\ +{\sc NeuralNetwork2 } & 345.9 & 776.6 & 1161.5 & 2440.7 & 182.1 & 880.0 & 1573.5 & 2882.6\\ +{\sc PCACluster } & 241.3 & 1014.9 & 1293.6 & * & 311.0 & 1117.2 & 1573.9 & *\\ +{\sc ZotBin } & 250.1 & 1108.2 & 1876.3 & 2449.1 & 372.3 & 1252.6 & 2103.8 & 2787.5\\ +{\sc ZotNet } & 287.4 & 1219.5 & 1992.5 & 2604.4 & 413.0 & 1378.9 & 2699.8 & 3278.9\\ +\hline +{\sc AutokerasLSTM } & 327.0 & 1011.6 & 1525.7 & -- & 345.4 & 706.9 & 1907.0 & 1602.4\\ +{\sc CNN } & 72.1 & 631.9 & 1183.8 & 1808.9 & 134.5 & 613.2 & 1373.9 & 2074.6\\ +{\sc ENSEMBLE } & 878.0 & 878.5 & 1582.8 & * & * & * & * & *\\ +{\sc FunBins } & 339.0 & 1236.5 & 2084.4 & 3068.2 & 426.1 & 1530.6 & 2564.6 & 3751.4\\ +{\sc GPzBinning } & 33.7 & 623.9 & 1141.0 & 1825.8 & 32.5 & 575.2 & 1268.4 & 2129.8\\ +{\sc IBandOnly } & 216.2 & 410.8 & 481.2 & 583.1 & 216.2 & 410.8 & 481.2 & 583.1\\ +{\sc LGBM } & 71.4 & 640.8 & 1212.4 & 1896.2 & 135.1 & 620.4 & 1337.7 & 2122.0\\ +{\sc LSTM } & 71.9 & 643.5 & 1232.3 & 1818.0 & 135.9 & 613.0 & 1367.8 & 2125.5\\ +{\sc MLPQNA } & 317.4 & 881.4 & 1559.9 & 2177.1 & 295.3 & 926.6 & 1730.7 & 2388.7\\ +{\sc Stacked Generalization } & 166.2 & 538.5 & 1102.6 & 2036.3 & 173.4 & 511.6 & 1102.6 & 2601.7\\ +{\sc PQNLD } & 296.3 & 827.8 & 1309.9 & 1869.4 & 291.6 & 922.0 & 1684.2 & 2419.2\\ +{\sc Random } & 0.5 & 0.5 & 0.5 & 0.6 & 0.5 & 0.5 & 0.5 & 0.6\\ +{\sc RandomForest } & 317.3 & 886.3 & 1540.2 & 2156.0 & 294.3 & 929.9 & 1739.3 & 2448.6\\ +{\sc SimpleSOM } & 298.6 & 821.7 & 1312.5 & 1785.8 & 279.6 & 959.2 & 1746.3 & 2446.7\\ +{\sc FFNN } & 317.9 & 856.2 & 1499.9 & 2064.0 & 296.0 & 923.7 & 1776.2 & 2435.6\\ +{\sc TCN } & 355.8 & 886.9 & 1522.4 & 2055.4 & 348.8 & 953.8 & 1716.3 & 2401.1\\ +{\sc UTOPIA } & 323.9 & 887.0 & 1486.2 & 2022.5 & 297.9 & 950.1 & 1764.5 & 2481.2\\ diff --git a/paper/results/tables/table_FOM_ww_buzzard.tex b/paper/results/tables/table_FOM_ww_buzzard.tex new file mode 100644 index 00000000..809c8649 --- /dev/null +++ b/paper/results/tables/table_FOM_ww_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1.9 & 6.2 & 7.5 & 8.4 & 1.0 & 7.9 & 13.2 & 15.9\\ +{\sc JaxCNN } & 4.0 & 10.0 & 11.6 & -- & 4.4 & 13.1 & 14.9 & 15.5\\ +{\sc JaxResNet } & 4.2 & 10.2 & -- & -- & 4.8 & 11.3 & -- & --\\ +{\sc NeuralNetwork1 } & 3.9 & 10.2 & 12.0 & 13.3 & 5.0 & 14.5 & 16.4 & 17.9\\ +{\sc NeuralNetwork2 } & 2.3 & 9.8 & 11.1 & 12.6 & 2.8 & 7.0 & 9.8 & 14.1\\ +{\sc PCACluster } & 3.8 & 6.0 & 4.2 & * & 1.2 & 2.5 & 5.0 & *\\ +{\sc ZotBin } & 5.7 & 8.8 & 10.8 & 10.5 & 3.6 & 10.0 & 11.3 & 12.4\\ +{\sc ZotNet } & 3.8 & 10.1 & 11.5 & 11.7 & 4.3 & 11.3 & 13.1 & 13.4\\ +\hline +{\sc AutokerasLSTM } & 2.9 & 10.5 & 8.2 & -- & 5.7 & 5.0 & -- & 11.5\\ +{\sc CNN } & 1.8 & 9.5 & 12.3 & 13.2 & 1.8 & 9.4 & 14.7 & 16.2\\ +{\sc ENSEMBLE } & 11.4 & 11.4 & 13.7 & 13.7 & 13.9 & 13.9 & 17.9 & 17.9\\ +{\sc FunBins } & 4.4 & 8.8 & 10.8 & 11.8 & 7.2 & 13.1 & 16.3 & 17.4\\ +{\sc GPzBinning } & 1.7 & 9.3 & 11.3 & 12.5 & 2.1 & 10.6 & 15.0 & 16.7\\ +{\sc IBandOnly } & 0.2 & 0.3 & 0.4 & 0.4 & 0.2 & 0.3 & 0.4 & 0.4\\ +{\sc LGBM } & 1.8 & 9.5 & 12.5 & 13.4 & 1.8 & 9.6 & 14.5 & 16.5\\ +{\sc LSTM } & 1.8 & 9.6 & 12.6 & 13.3 & 1.9 & 9.6 & 14.5 & 16.5\\ +{\sc MLPQNA } & 4.8 & 11.2 & 13.0 & 13.7 & 6.9 & 13.8 & 17.3 & 18.3\\ +{\sc Stacked Generalization } & 1.5 & 6.6 & 11.0 & 13.1 & 2.3 & 9.5 & 14.9 & 17.6\\ +{\sc PQNLD } & 4.6 & 10.4 & 11.9 & 12.7 & 6.9 & 14.2 & 17.3 & 18.3\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 4.6 & 10.8 & 12.6 & 13.1 & 6.8 & 13.8 & 17.2 & 18.2\\ +{\sc SimpleSOM } & 4.7 & 10.4 & 12.0 & 12.7 & 7.3 & 15.0 & 17.6 & 18.5\\ +{\sc FFNN } & 4.7 & 11.0 & 12.8 & 13.5 & 6.8 & 13.7 & 16.8 & 17.7\\ +{\sc TCN } & 5.0 & 10.9 & 12.9 & 13.4 & 6.2 & 12.2 & 15.8 & 16.4\\ +{\sc UTOPIA } & 4.2 & 9.9 & 11.6 & 12.1 & 6.6 & 13.0 & 16.2 & 17.2\\ diff --git a/paper/results/tables/table_FOM_ww_dc2.tex b/paper/results/tables/table_FOM_ww_dc2.tex new file mode 100644 index 00000000..799ddee5 --- /dev/null +++ b/paper/results/tables/table_FOM_ww_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 17.3 & 19.7 & 25.0 & 25.4 & 6.5 & 12.2 & 19.3 & 21.5\\ +{\sc JaxCNN } & 9.3 & 27.9 & 29.0 & -- & 3.3 & 38.0 & 42.7 & --\\ +{\sc JaxResNet } & 2.1 & 30.8 & 37.9 & -- & 2.2 & 31.1 & -- & 44.7\\ +{\sc NeuralNetwork1 } & 1.6 & 34.0 & 36.7 & 25.0 & 2.1 & 37.7 & 46.3 & 25.0\\ +{\sc NeuralNetwork2 } & 19.2 & 21.8 & 22.4 & 35.8 & 8.5 & 18.6 & 22.5 & 36.7\\ +{\sc PCACluster } & 7.8 & 11.3 & 14.2 & * & 12.6 & 12.0 & 21.6 & *\\ +{\sc ZotBin } & 4.8 & 24.8 & 30.9 & 29.1 & 4.0 & 27.3 & 35.9 & 38.1\\ +{\sc ZotNet } & 2.2 & 29.9 & 33.1 & 34.6 & 2.3 & 33.2 & 42.3 & 43.0\\ +\hline +{\sc AutokerasLSTM } & 13.8 & 30.2 & 31.1 & -- & 26.4 & 7.7 & 43.0 & 44.6\\ +{\sc CNN } & 7.0 & 29.8 & 37.5 & 38.1 & 6.2 & 35.8 & 45.0 & 48.7\\ +{\sc ENSEMBLE } & 36.0 & 36.0 & 38.6 & * & * & * & * & *\\ +{\sc FunBins } & 23.3 & 31.6 & 36.5 & 39.8 & 31.2 & 43.0 & 50.4 & 54.0\\ +{\sc GPzBinning } & 6.9 & 23.9 & 33.1 & 35.1 & 6.5 & 36.0 & 46.0 & 47.8\\ +{\sc IBandOnly } & 0.8 & 2.6 & 3.2 & 3.6 & 0.8 & 2.6 & 3.2 & 3.6\\ +{\sc LGBM } & 7.0 & 30.1 & 37.5 & 39.6 & 6.3 & 36.3 & 45.4 & 48.6\\ +{\sc LSTM } & 6.9 & 29.3 & 36.8 & 38.2 & 6.4 & 35.5 & 44.6 & 48.9\\ +{\sc MLPQNA } & 23.1 & 35.0 & 37.3 & 38.0 & 30.0 & 43.9 & 48.9 & 51.4\\ +{\sc Stacked Generalization } & 1.2 & 8.4 & 28.8 & 39.1 & 1.7 & 10.9 & 37.2 & 49.3\\ +{\sc PQNLD } & 20.2 & 30.9 & 35.0 & 36.4 & 27.6 & 44.4 & 49.9 & 52.9\\ +{\sc Random } & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 & 0.0\\ +{\sc RandomForest } & 23.5 & 34.9 & 38.4 & 39.6 & 30.0 & 44.5 & 50.1 & 53.2\\ +{\sc SimpleSOM } & 20.5 & 30.7 & 35.1 & 36.7 & 28.8 & 45.4 & 50.7 & 53.8\\ +{\sc FFNN } & 22.6 & 34.4 & 36.7 & 37.7 & 29.7 & 43.4 & 48.3 & 50.9\\ +{\sc TCN } & 23.6 & 36.0 & 38.0 & 38.7 & 27.6 & 41.2 & 46.3 & 49.4\\ +{\sc UTOPIA } & 22.0 & 31.1 & 35.1 & 36.3 & 29.8 & 43.2 & 49.6 & 52.3\\ diff --git a/paper/results/tables/table_SNR_3x2_buzzard.tex b/paper/results/tables/table_SNR_3x2_buzzard.tex new file mode 100644 index 00000000..a5b07545 --- /dev/null +++ b/paper/results/tables/table_SNR_3x2_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1133.8 & 1397.6 & 1537.6 & 1660.1 & 1142.5 & 1457.1 & 1673.4 & 1826.4\\ +{\sc JaxCNN } & 1046.1 & 1320.5 & 1509.7 & -- & 1085.0 & 1385.9 & 1621.6 & 1830.5\\ +{\sc JaxResNet } & 1022.3 & 1328.6 & -- & -- & 1056.1 & 1246.8 & -- & --\\ +{\sc NeuralNetwork1 } & 1007.2 & 1326.8 & 1537.1 & 1729.5 & 1062.4 & 1381.4 & 1568.5 & 1773.5\\ +{\sc NeuralNetwork2 } & 1155.7 & 1440.4 & 1664.4 & 1810.9 & 1159.4 & 1485.2 & 1744.7 & 1949.0\\ +{\sc PCACluster } & 999.5 & 1205.3 & 1180.4 & * & 943.7 & 1054.1 & 1171.7 & *\\ +{\sc ZotBin } & 1068.8 & 1355.5 & 1572.8 & 1674.9 & 1089.4 & 1383.3 & 1623.2 & 1787.6\\ +{\sc ZotNet } & 1000.4 & 1312.9 & 1524.4 & 1673.9 & 1048.0 & 1348.9 & 1586.2 & 1727.6\\ +\hline +{\sc AutokerasLSTM } & 1089.8 & 1130.3 & 1355.7 & -- & 1134.1 & 1327.8 & -- & 1845.0\\ +{\sc CNN } & 951.1 & 1279.0 & 1543.5 & 1725.0 & 947.8 & 1306.7 & 1580.6 & 1814.6\\ +{\sc ENSEMBLE } & 1422.2 & 1422.2 & 1761.9 & 1761.9 & 1451.2 & 1451.2 & 1901.5 & 1901.5\\ +{\sc FunBins } & 973.8 & 1238.7 & 1403.0 & 1413.1 & 982.9 & 1257.9 & 1454.2 & 1588.6\\ +{\sc GPzBinning } & 937.5 & 1244.8 & 1456.0 & 1562.1 & 941.1 & 1301.6 & 1574.3 & 1789.2\\ +{\sc IBandOnly } & 722.6 & 737.9 & 755.8 & 763.7 & 722.6 & 737.9 & 755.8 & 763.7\\ +{\sc LGBM } & 950.9 & 1278.4 & 1544.3 & 1733.0 & 947.7 & 1307.7 & 1583.8 & 1814.9\\ +{\sc LSTM } & 951.3 & 1280.7 & 1542.8 & 1724.5 & 947.3 & 1307.9 & 1583.6 & 1815.3\\ +{\sc MLPQNA } & 1119.4 & 1423.2 & 1647.0 & 1757.6 & 1142.6 & 1451.1 & 1705.2 & 1917.4\\ +{\sc Stacked Generalization } & 1134.2 & 1412.6 & 1588.7 & 1682.6 & 1157.8 & 1472.7 & 1675.1 & 1780.1\\ +{\sc PQNLD } & 1086.2 & 1345.8 & 1498.4 & 1609.6 & 1138.0 & 1432.6 & 1667.3 & 1858.5\\ +{\sc Random } & 680.5 & 680.5 & 680.5 & 680.5 & 680.5 & 680.5 & 680.5 & 680.5\\ +{\sc RandomForest } & 1113.2 & 1403.7 & 1624.3 & 1722.5 & 1141.7 & 1448.8 & 1702.6 & 1913.3\\ +{\sc SimpleSOM } & 1087.1 & 1347.2 & 1517.1 & 1609.1 & 1134.4 & 1424.8 & 1664.9 & 1830.9\\ +{\sc FFNN } & 1117.6 & 1417.7 & 1639.7 & 1745.2 & 1141.8 & 1448.7 & 1703.1 & 1911.2\\ +{\sc TCN } & 1125.3 & 1423.7 & 1647.5 & 1762.0 & 1143.5 & 1450.2 & 1701.9 & 1913.7\\ +{\sc UTOPIA } & 1100.5 & 1388.2 & 1570.8 & 1659.3 & 1137.4 & 1436.0 & 1678.1 & 1865.7\\ diff --git a/paper/results/tables/table_SNR_3x2_dc2.tex b/paper/results/tables/table_SNR_3x2_dc2.tex new file mode 100644 index 00000000..abce2260 --- /dev/null +++ b/paper/results/tables/table_SNR_3x2_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1081.2 & 1311.2 & 1442.3 & 1540.0 & 1072.7 & 1142.4 & 1471.9 & 1558.1\\ +{\sc JaxCNN } & 970.2 & 1221.1 & 1285.6 & -- & 1079.4 & 1333.0 & 1556.4 & --\\ +{\sc JaxResNet } & 1011.7 & 1241.7 & 1388.2 & -- & 1075.5 & 1291.2 & -- & 1609.6\\ +{\sc NeuralNetwork1 } & 1019.3 & 1272.6 & 1467.4 & 1515.6 & 1069.6 & 1349.3 & 1549.0 & 1471.5\\ +{\sc NeuralNetwork2 } & 1104.3 & 1391.9 & 1608.4 & 1744.2 & 1126.9 & 1438.0 & 1686.8 & 1842.9\\ +{\sc PCACluster } & 918.2 & 1070.8 & 1181.3 & * & 1004.6 & 1047.0 & 1174.7 & *\\ +{\sc ZotBin } & 990.0 & 1224.9 & 1454.4 & 1562.2 & 1073.6 & 1304.0 & 1542.6 & 1741.8\\ +{\sc ZotNet } & 1006.2 & 1240.5 & 1429.4 & 1575.8 & 1083.5 & 1324.6 & 1486.1 & 1733.9\\ +\hline +{\sc AutokerasLSTM } & 1064.0 & 1295.3 & 1379.7 & -- & 1097.2 & 1243.9 & 1603.1 & 1660.7\\ +{\sc CNN } & 896.8 & 1218.7 & 1456.3 & 1630.5 & 916.3 & 1249.9 & 1512.7 & 1732.3\\ +{\sc ENSEMBLE } & 1330.1 & 1330.2 & 1558.4 & * & * & * & * & *\\ +{\sc FunBins } & 983.5 & 1192.0 & 1344.4 & 1499.2 & 1021.3 & 1267.5 & 1475.3 & 1659.7\\ +{\sc GPzBinning } & 892.2 & 1200.2 & 1371.3 & 1507.4 & 911.0 & 1253.1 & 1499.2 & 1701.9\\ +{\sc IBandOnly } & 782.3 & 828.8 & 851.9 & 866.6 & 782.3 & 828.8 & 851.9 & 866.6\\ +{\sc LGBM } & 896.6 & 1225.6 & 1463.5 & 1640.5 & 916.5 & 1253.0 & 1515.3 & 1735.6\\ +{\sc LSTM } & 896.9 & 1221.3 & 1454.5 & 1630.8 & 916.2 & 1249.0 & 1512.4 & 1730.5\\ +{\sc MLPQNA } & 1085.6 & 1320.9 & 1548.4 & 1676.5 & 1099.8 & 1385.1 & 1630.2 & 1810.4\\ +{\sc Stacked Generalization } & 1021.7 & 1318.6 & 1557.4 & 1672.2 & 1108.8 & 1431.3 & 1674.3 & 1839.4\\ +{\sc PQNLD } & 1069.0 & 1310.6 & 1478.0 & 1585.1 & 1104.2 & 1382.7 & 1622.6 & 1802.5\\ +{\sc Random } & 670.1 & 670.1 & 670.1 & 670.1 & 670.1 & 670.1 & 670.1 & 670.1\\ +{\sc RandomForest } & 1084.7 & 1334.6 & 1550.4 & 1689.2 & 1100.1 & 1388.2 & 1633.1 & 1825.1\\ +{\sc SimpleSOM } & 1067.3 & 1309.3 & 1482.0 & 1574.4 & 1102.1 & 1379.8 & 1602.3 & 1789.7\\ +{\sc FFNN } & 1084.5 & 1310.7 & 1536.0 & 1673.0 & 1099.0 & 1379.6 & 1624.9 & 1799.8\\ +{\sc TCN } & 1091.7 & 1324.9 & 1553.8 & 1694.7 & 1098.9 & 1379.5 & 1624.5 & 1815.5\\ +{\sc UTOPIA } & 1078.6 & 1308.9 & 1499.9 & 1614.4 & 1098.7 & 1383.0 & 1621.6 & 1808.6\\ diff --git a/paper/results/tables/table_SNR_gg_buzzard.tex b/paper/results/tables/table_SNR_gg_buzzard.tex new file mode 100644 index 00000000..68302b04 --- /dev/null +++ b/paper/results/tables/table_SNR_gg_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1133.0 & 1397.0 & 1537.1 & 1659.7 & 1141.5 & 1456.6 & 1673.0 & 1826.0\\ +{\sc JaxCNN } & 1044.7 & 1319.2 & 1509.1 & -- & 1083.8 & 1385.4 & 1621.2 & 1830.2\\ +{\sc JaxResNet } & 1020.7 & 1327.5 & -- & -- & 1054.5 & 1246.2 & -- & --\\ +{\sc NeuralNetwork1 } & 1005.1 & 1326.0 & 1536.6 & 1729.1 & 1060.8 & 1380.9 & 1568.2 & 1773.2\\ +{\sc NeuralNetwork2 } & 1153.9 & 1439.9 & 1664.0 & 1810.4 & 1157.3 & 1484.9 & 1744.4 & 1948.7\\ +{\sc PCACluster } & 996.3 & 1204.0 & 1178.8 & * & 941.0 & 1051.8 & 1170.4 & *\\ +{\sc ZotBin } & 1066.8 & 1354.7 & 1572.2 & 1674.3 & 1087.3 & 1382.8 & 1622.8 & 1787.2\\ +{\sc ZotNet } & 998.2 & 1312.0 & 1523.5 & 1673.3 & 1045.5 & 1348.4 & 1585.8 & 1727.2\\ +\hline +{\sc AutokerasLSTM } & 1087.6 & 1127.7 & 1353.9 & -- & 1132.2 & 1325.8 & -- & 1844.6\\ +{\sc CNN } & 948.1 & 1277.3 & 1543.0 & 1724.5 & 944.9 & 1306.0 & 1580.2 & 1814.3\\ +{\sc ENSEMBLE } & 1421.6 & 1421.6 & 1761.4 & 1761.4 & 1450.7 & 1450.7 & 1901.2 & 1901.2\\ +{\sc FunBins } & 971.4 & 1237.9 & 1402.5 & 1412.5 & 980.5 & 1257.3 & 1453.7 & 1588.2\\ +{\sc GPzBinning } & 935.2 & 1244.1 & 1455.5 & 1561.6 & 938.5 & 1300.9 & 1573.9 & 1788.9\\ +{\sc IBandOnly } & 713.4 & 729.2 & 747.3 & 755.5 & 713.4 & 729.2 & 747.3 & 755.5\\ +{\sc LGBM } & 947.9 & 1276.7 & 1543.8 & 1732.6 & 944.8 & 1306.9 & 1583.4 & 1814.6\\ +{\sc LSTM } & 948.3 & 1278.7 & 1542.3 & 1724.0 & 944.3 & 1307.1 & 1583.2 & 1815.0\\ +{\sc MLPQNA } & 1117.6 & 1422.7 & 1646.6 & 1757.1 & 1141.2 & 1450.6 & 1704.9 & 1917.1\\ +{\sc Stacked Generalization } & 1131.1 & 1410.3 & 1587.4 & 1682.0 & 1155.0 & 1470.7 & 1674.2 & 1779.7\\ +{\sc PQNLD } & 1084.9 & 1345.1 & 1497.9 & 1609.2 & 1136.7 & 1432.0 & 1667.0 & 1858.2\\ +{\sc Random } & 674.0 & 674.0 & 674.0 & 674.0 & 674.0 & 674.0 & 674.0 & 674.0\\ +{\sc RandomForest } & 1111.3 & 1403.1 & 1623.8 & 1721.9 & 1140.3 & 1448.3 & 1702.2 & 1913.0\\ +{\sc SimpleSOM } & 1085.7 & 1346.5 & 1516.5 & 1608.6 & 1133.1 & 1424.2 & 1664.5 & 1830.6\\ +{\sc FFNN } & 1115.8 & 1417.2 & 1639.2 & 1744.7 & 1140.4 & 1448.2 & 1702.7 & 1910.9\\ +{\sc TCN } & 1122.7 & 1423.0 & 1647.0 & 1761.4 & 1142.1 & 1449.6 & 1701.6 & 1913.4\\ +{\sc UTOPIA } & 1099.2 & 1387.7 & 1570.4 & 1658.9 & 1136.2 & 1435.6 & 1677.7 & 1865.4\\ diff --git a/paper/results/tables/table_SNR_gg_dc2.tex b/paper/results/tables/table_SNR_gg_dc2.tex new file mode 100644 index 00000000..4057625b --- /dev/null +++ b/paper/results/tables/table_SNR_gg_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 1078.6 & 1309.0 & 1440.2 & 1538.1 & 1070.4 & 1140.1 & 1470.2 & 1556.5\\ +{\sc JaxCNN } & 964.7 & 1218.1 & 1282.9 & -- & 1077.3 & 1331.3 & 1555.0 & --\\ +{\sc JaxResNet } & 1008.8 & 1239.3 & 1385.9 & -- & 1073.4 & 1289.5 & -- & 1608.2\\ +{\sc NeuralNetwork1 } & 1016.7 & 1270.5 & 1465.7 & 1513.0 & 1067.5 & 1347.7 & 1547.6 & 1468.6\\ +{\sc NeuralNetwork2 } & 1100.3 & 1388.8 & 1605.5 & 1742.6 & 1120.5 & 1436.6 & 1685.7 & 1841.7\\ +{\sc PCACluster } & 908.2 & 1063.1 & 1174.5 & * & 994.4 & 1036.9 & 1167.9 & *\\ +{\sc ZotBin } & 986.3 & 1222.4 & 1452.3 & 1560.2 & 1071.3 & 1302.2 & 1541.1 & 1740.5\\ +{\sc ZotNet } & 1003.2 & 1238.0 & 1427.4 & 1574.0 & 1081.5 & 1323.0 & 1484.6 & 1732.6\\ +\hline +{\sc AutokerasLSTM } & 1059.7 & 1293.2 & 1377.6 & -- & 1093.5 & 1242.2 & 1601.8 & 1659.1\\ +{\sc CNN } & 888.3 & 1216.4 & 1454.6 & 1628.9 & 907.6 & 1247.6 & 1511.2 & 1731.1\\ +{\sc ENSEMBLE } & 1328.2 & 1328.3 & 1556.8 & * & * & * & * & *\\ +{\sc FunBins } & 980.1 & 1189.6 & 1342.2 & 1497.2 & 1018.0 & 1265.5 & 1473.7 & 1658.3\\ +{\sc GPzBinning } & 882.4 & 1198.0 & 1369.3 & 1505.4 & 903.7 & 1250.9 & 1497.8 & 1700.7\\ +{\sc IBandOnly } & 766.8 & 815.6 & 839.7 & 854.7 & 766.8 & 815.6 & 839.7 & 854.7\\ +{\sc LGBM } & 888.1 & 1223.3 & 1461.8 & 1638.9 & 907.8 & 1250.7 & 1513.8 & 1734.4\\ +{\sc LSTM } & 888.4 & 1219.0 & 1452.8 & 1629.1 & 907.4 & 1246.7 & 1511.0 & 1729.3\\ +{\sc MLPQNA } & 1082.6 & 1318.9 & 1546.7 & 1674.8 & 1096.6 & 1383.4 & 1628.9 & 1809.2\\ +{\sc Stacked Generalization } & 1017.4 & 1316.2 & 1555.2 & 1670.1 & 1103.3 & 1427.9 & 1671.5 & 1837.8\\ +{\sc PQNLD } & 1065.5 & 1308.5 & 1476.3 & 1583.4 & 1101.3 & 1380.9 & 1621.3 & 1801.3\\ +{\sc Random } & 646.3 & 646.3 & 646.3 & 646.3 & 646.3 & 646.3 & 646.3 & 646.3\\ +{\sc RandomForest } & 1081.8 & 1332.7 & 1548.8 & 1687.5 & 1096.9 & 1386.5 & 1631.8 & 1823.9\\ +{\sc SimpleSOM } & 1063.9 & 1307.3 & 1480.3 & 1572.8 & 1098.6 & 1378.1 & 1600.9 & 1788.5\\ +{\sc FFNN } & 1081.3 & 1308.6 & 1534.3 & 1671.3 & 1095.9 & 1377.9 & 1623.6 & 1798.6\\ +{\sc TCN } & 1088.7 & 1322.9 & 1552.2 & 1693.1 & 1095.4 & 1377.8 & 1623.2 & 1814.3\\ +{\sc UTOPIA } & 1075.7 & 1306.9 & 1498.0 & 1612.4 & 1095.7 & 1381.4 & 1620.3 & 1807.4\\ diff --git a/paper/results/tables/table_SNR_ww_buzzard.tex b/paper/results/tables/table_SNR_ww_buzzard.tex new file mode 100644 index 00000000..7aaf83d0 --- /dev/null +++ b/paper/results/tables/table_SNR_ww_buzzard.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 240.0 & 242.0 & 243.0 & 243.9 & 237.5 & 251.8 & 255.1 & 256.3\\ +{\sc JaxCNN } & 241.0 & 249.0 & 251.2 & -- & 248.2 & 256.7 & 258.3 & 258.6\\ +{\sc JaxResNet } & 240.1 & 249.5 & -- & -- & 244.4 & 255.6 & -- & --\\ +{\sc NeuralNetwork1 } & 239.8 & 250.1 & 252.6 & 253.2 & 244.8 & 258.4 & 259.7 & 260.7\\ +{\sc NeuralNetwork2 } & 244.7 & 250.5 & 251.5 & 251.5 & 249.2 & 254.7 & 257.6 & 258.9\\ +{\sc PCACluster } & 233.9 & 241.4 & 240.0 & * & 232.4 & 233.7 & 245.7 & *\\ +{\sc ZotBin } & 234.9 & 247.0 & 248.1 & 247.9 & 243.0 & 251.8 & 252.7 & 253.7\\ +{\sc ZotNet } & 238.3 & 248.9 & 251.0 & 249.7 & 243.0 & 254.4 & 256.2 & 256.3\\ +\hline +{\sc AutokerasLSTM } & 244.3 & 250.0 & 246.4 & -- & 251.7 & 243.4 & -- & 255.4\\ +{\sc CNN } & 244.3 & 250.1 & 251.8 & 252.2 & 247.8 & 255.5 & 258.3 & 259.0\\ +{\sc ENSEMBLE } & 251.8 & 251.8 & 253.1 & 253.1 & 259.8 & 259.8 & 261.1 & 261.1\\ +{\sc FunBins } & 244.3 & 249.1 & 250.0 & 251.1 & 250.3 & 257.1 & 259.5 & 260.1\\ +{\sc GPzBinning } & 245.8 & 252.0 & 253.6 & 254.1 & 249.9 & 257.5 & 259.6 & 260.7\\ +{\sc IBandOnly } & 221.9 & 222.4 & 222.6 & 222.7 & 221.9 & 222.4 & 222.6 & 222.7\\ +{\sc LGBM } & 244.9 & 250.3 & 252.2 & 252.5 & 248.0 & 256.2 & 258.5 & 259.2\\ +{\sc LSTM } & 244.4 & 250.0 & 252.1 & 252.3 & 248.5 & 256.1 & 258.4 & 259.2\\ +{\sc MLPQNA } & 247.3 & 251.7 & 252.7 & 252.9 & 255.6 & 259.6 & 261.0 & 261.3\\ +{\sc Stacked Generalization } & 234.9 & 240.4 & 242.9 & 252.3 & 239.2 & 245.6 & 247.3 & 259.1\\ +{\sc PQNLD } & 248.2 & 252.5 & 253.6 & 254.1 & 255.7 & 259.9 & 261.3 & 261.8\\ +{\sc Random } & 221.5 & 221.5 & 221.5 & 221.5 & 221.5 & 221.5 & 221.5 & 221.5\\ +{\sc RandomForest } & 247.0 & 250.8 & 252.0 & 252.1 & 255.5 & 259.6 & 260.9 & 261.3\\ +{\sc SimpleSOM } & 248.2 & 252.5 & 253.6 & 254.0 & 255.9 & 260.1 & 261.3 & 261.8\\ +{\sc FFNN } & 247.1 & 251.4 & 252.5 & 252.6 & 255.1 & 259.1 & 260.5 & 260.8\\ +{\sc TCN } & 247.0 & 251.0 & 252.2 & 252.3 & 253.7 & 257.4 & 258.9 & 259.1\\ +{\sc UTOPIA } & 247.0 & 250.6 & 251.8 & 252.1 & 255.5 & 259.3 & 260.7 & 261.2\\ diff --git a/paper/results/tables/table_SNR_ww_dc2.tex b/paper/results/tables/table_SNR_ww_dc2.tex new file mode 100644 index 00000000..addca88c --- /dev/null +++ b/paper/results/tables/table_SNR_ww_dc2.tex @@ -0,0 +1,26 @@ +{\sc ComplexSOM } & 346.8 & 347.7 & 349.3 & 349.5 & 342.7 & 345.7 & 347.6 & 348.1\\ +{\sc JaxCNN } & 331.3 & 346.7 & 347.8 & -- & 348.5 & 363.0 & 364.5 & --\\ +{\sc JaxResNet } & 341.0 & 350.7 & 354.7 & -- & 349.0 & 359.4 & -- & 365.5\\ +{\sc NeuralNetwork1 } & 342.0 & 355.0 & 355.9 & 342.1 & 346.5 & 363.3 & 366.0 & 340.6\\ +{\sc NeuralNetwork2 } & 334.7 & 334.1 & 333.2 & 353.1 & 345.4 & 358.9 & 358.9 & 350.4\\ +{\sc PCACluster } & 327.7 & 329.1 & 331.1 & * & 339.5 & 334.1 & 341.2 & *\\ +{\sc ZotBin } & 334.4 & 346.6 & 349.4 & 350.0 & 343.8 & 353.9 & 357.0 & 357.9\\ +{\sc ZotNet } & 340.2 & 350.4 & 352.2 & 354.3 & 348.3 & 360.0 & 362.8 & 363.1\\ +\hline +{\sc AutokerasLSTM } & 335.3 & 351.8 & 352.4 & -- & 358.7 & 350.1 & 363.9 & 364.3\\ +{\sc CNN } & 346.8 & 353.9 & 356.1 & 354.5 & 352.5 & 362.6 & 365.0 & 366.0\\ +{\sc ENSEMBLE } & 355.8 & 355.8 & 356.0 & * & * & * & * & *\\ +{\sc FunBins } & 347.5 & 352.8 & 354.9 & 355.7 & 358.8 & 364.6 & 367.0 & 367.9\\ +{\sc GPzBinning } & 346.6 & 354.8 & 357.3 & 358.2 & 352.8 & 363.0 & 366.0 & 366.5\\ +{\sc IBandOnly } & 327.6 & 329.2 & 329.9 & 330.3 & 327.6 & 329.2 & 329.9 & 330.3\\ +{\sc LGBM } & 346.7 & 354.2 & 356.2 & 356.3 & 352.5 & 362.8 & 365.2 & 365.8\\ +{\sc LSTM } & 346.4 & 353.5 & 355.3 & 354.2 & 352.5 & 362.3 & 365.0 & 366.1\\ +{\sc MLPQNA } & 351.6 & 355.4 & 355.1 & 355.1 & 361.0 & 365.7 & 367.0 & 367.5\\ +{\sc Stacked Generalization } & 337.2 & 343.3 & 349.3 & 351.6 & 340.7 & 349.2 & 356.0 & 358.8\\ +{\sc PQNLD } & 352.4 & 356.8 & 358.2 & 358.7 & 360.7 & 365.9 & 367.4 & 368.2\\ +{\sc Random } & 323.5 & 323.5 & 323.5 & 323.5 & 323.5 & 323.5 & 323.5 & 323.5\\ +{\sc RandomForest } & 351.7 & 355.0 & 355.4 & 355.6 & 361.1 & 365.8 & 367.4 & 368.1\\ +{\sc SimpleSOM } & 352.4 & 356.6 & 358.2 & 358.7 & 360.5 & 366.1 & 367.5 & 368.4\\ +{\sc FFNN } & 351.1 & 354.6 & 354.8 & 355.2 & 360.9 & 365.3 & 366.7 & 367.3\\ +{\sc TCN } & 351.6 & 355.7 & 355.5 & 355.3 & 359.5 & 363.9 & 365.2 & 366.2\\ +{\sc UTOPIA } & 349.6 & 352.1 & 352.7 & 353.2 & 361.0 & 365.3 & 367.0 & 367.6\\