<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Continuum_functions_%28tikz_plot%29</id>
	<title>Continuum functions (tikz plot) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Continuum_functions_%28tikz_plot%29"/>
	<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Continuum_functions_(tikz_plot)&amp;action=history"/>
	<updated>2026-05-18T13:48:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Continuum_functions_(tikz_plot)&amp;diff=3272&amp;oldid=prev</id>
		<title>Zalot: Created page with &quot;'''S-Lang code:'''  &lt;pre&gt; #!/usr/bin/env isis  require(&quot;isisscripts&quot;); require(&quot;tikz&quot;); use_localmodel(&quot;pulsar&quot;); tikz_add_default_latex_package(&quot;txfonts&quot;);   % functions to c...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.sternwarte.uni-erlangen.de/wiki/index.php?title=Continuum_functions_(tikz_plot)&amp;diff=3272&amp;oldid=prev"/>
		<updated>2024-02-05T12:07:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;S-Lang code:&amp;#039;&amp;#039;&amp;#039;  &amp;lt;pre&amp;gt; #!/usr/bin/env isis  require(&amp;quot;isisscripts&amp;quot;); require(&amp;quot;tikz&amp;quot;); use_localmodel(&amp;quot;pulsar&amp;quot;); tikz_add_default_latex_package(&amp;quot;txfonts&amp;quot;);   % functions to c...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''S-Lang code:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env isis&lt;br /&gt;
&lt;br /&gt;
require(&amp;quot;isisscripts&amp;quot;);&lt;br /&gt;
require(&amp;quot;tikz&amp;quot;);&lt;br /&gt;
use_localmodel(&amp;quot;pulsar&amp;quot;);&lt;br /&gt;
tikz_add_default_latex_package(&amp;quot;txfonts&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% functions to check: cutoffpl, highecut, fdcut&lt;br /&gt;
&lt;br /&gt;
variable funcs=[&amp;quot;cutoffpl(1)&amp;quot;,&amp;quot;powerlaw(1)*highecut(1)&amp;quot;,&amp;quot;powerlaw(1)*fdcut(1)&amp;quot;];&lt;br /&gt;
% PHO FOLD (and only if) CUT&lt;br /&gt;
variable varPars={[2,3],[2,4,3],[2,4,3]};;&lt;br /&gt;
variable parNames=[&amp;quot;\\Gamma&amp;quot;,&amp;quot;E_\\mathrm{fold}&amp;quot;,&amp;quot;E_\\mathrm{cutoff}&amp;quot;];&lt;br /&gt;
variable unit=[&amp;quot;&amp;quot;,&amp;quot;keV&amp;quot;,&amp;quot;keV&amp;quot;];&lt;br /&gt;
variable lower=[-1,1,10];&lt;br /&gt;
variable upper=[1,6,20];&lt;br /&gt;
&lt;br /&gt;
variable whereFOLD=[3,4,4];&lt;br /&gt;
variable whereCUT=[-1,3,3];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
variable funcnames=[&amp;quot;\\texttt{cutoffpl}&amp;quot;,&amp;quot;\\texttt{highecut}&amp;quot;,&amp;quot;\\texttt{FDcut}&amp;quot;];&lt;br /&gt;
variable formulas=[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;];&lt;br /&gt;
formulas[0]=&amp;quot;$K \\cdot E^{-\\Gamma} \\exp\\left(-\\frac{E}{E_\\mathrm{fold}}\\right)$&amp;quot;;&lt;br /&gt;
formulas[1]=&amp;quot;$K \\cdot E^{-\\Gamma} \\exp\\left(-\\frac{E-E_\\mathrm{cutoff}}{E_\\mathrm{fold}}\\right)$&amp;quot;;&lt;br /&gt;
formulas[2]=&amp;quot;$K \\cdot E^{-\\Gamma}\\left[ 1 + \\exp \\left( \\frac{E-E_\\mathrm{cutoff}}{E_\\mathrm{fold}}\\right) \\right]^{-1}$&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
variable numSteps=8;&lt;br /&gt;
variable func,varPar,ii,jj,kk,lo,hi;&lt;br /&gt;
variable Emin=1;&lt;br /&gt;
variable Emax=80;&lt;br /&gt;
&lt;br /&gt;
%energy grid&lt;br /&gt;
(lo,hi)=log_grid(Emin,Emax,1000);&lt;br /&gt;
variable middle=0.5*(lo+hi);&lt;br /&gt;
variable width=hi-lo;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
variable pho=-0.5;&lt;br /&gt;
variable ecut=15;&lt;br /&gt;
variable efold=5;&lt;br /&gt;
&lt;br /&gt;
variable compPlot=Struct_Type[length(funcs)];&lt;br /&gt;
&lt;br /&gt;
for(ii=0;ii&amp;lt;length(funcs);ii++){&lt;br /&gt;
	func=funcs[ii];&lt;br /&gt;
	fit_fun(func);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	% create structure that holds this column (length is always free since&lt;br /&gt;
	% cutoffpl gets the info tab&lt;br /&gt;
	variable column=Struct_Type[3];&lt;br /&gt;
	%loop over variable params&lt;br /&gt;
	for(jj=0;jj&amp;lt;length(varPars[ii]);jj++){&lt;br /&gt;
		&lt;br /&gt;
		% establish basis params&lt;br /&gt;
		set_par(1,1,1); %norm set to 1&lt;br /&gt;
		if(ii!=0){set_par(whereCUT[ii],ecut);};  &lt;br /&gt;
		set_par(whereFOLD[ii],efold);&lt;br /&gt;
		set_par(2,pho);&lt;br /&gt;
		% basic setup complete! now vary the rest&lt;br /&gt;
	&lt;br /&gt;
		% add a subplot&lt;br /&gt;
		column[jj]=tikz_plot_new(5,5);&lt;br /&gt;
		column[jj].world(Emin,Emax,5e-2,2e1;xlog,ylog);&lt;br /&gt;
&lt;br /&gt;
		% decativate x1axis, activate x2axis&lt;br /&gt;
		column[jj].x1axis(;format=&amp;quot;&amp;quot;);&lt;br /&gt;
		column[jj].x2axis(;on);&lt;br /&gt;
		&lt;br /&gt;
		% decativate y1axis, activate y2axis&lt;br /&gt;
		column[jj].y1axis(;format=&amp;quot;&amp;quot;);&lt;br /&gt;
		%activate only for last column&lt;br /&gt;
		if(ii==2){&lt;br /&gt;
			column[jj].y2axis(;on,format=&amp;quot;$10^{%.0f}$&amp;quot;);&lt;br /&gt;
			column[jj].y2label(&amp;quot;Flux density [arb. units]&amp;quot;);&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
		% slope of parameter change	&lt;br /&gt;
		variable slope=1.0*(upper[jj]-lower[jj])/(numSteps-1);&lt;br /&gt;
	&lt;br /&gt;
		% loop over all the different values to try!&lt;br /&gt;
		for(kk=0;kk&amp;lt;numSteps;kk++){&lt;br /&gt;
&lt;br /&gt;
			% determine the parameter&lt;br /&gt;
			set_par(varPars[ii][jj],slope*kk+lower[jj]);&lt;br /&gt;
			variable fluxDen=eval_fun_keV(lo,hi)/width;&lt;br /&gt;
&lt;br /&gt;
			% determine the plot color&lt;br /&gt;
			tikz_new_color(&amp;quot;plotcol&amp;quot;,sprintf(&amp;quot;blue!%d!red&amp;quot;,100*kk/numSteps));&lt;br /&gt;
		&lt;br /&gt;
			% plot the obtained curve&lt;br /&gt;
			column[jj].plot(middle,fluxDen;color=&amp;quot;plotcol&amp;quot;);&lt;br /&gt;
		};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if((ii==0 &amp;amp;&amp;amp; jj&amp;lt;2) || ii!=0){&lt;br /&gt;
		column[jj].xylabel(0.04,0.9,sprintf(&amp;quot;$%s={\\color{red}%d}$--${\\color{blue}%d}$\\,%s&amp;quot;,parNames[jj],lower[jj],upper[jj],unit[jj]);world0,anchor=&amp;quot;west&amp;quot;);&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	% add dashed line for the cutoff energy&lt;br /&gt;
	if(ii&amp;gt;0 &amp;amp;&amp;amp; jj&amp;lt;2){&lt;br /&gt;
		column[jj].plot([ecut,ecut],[0,1];world10,line=1);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	% add the info block and parameter border info	&lt;br /&gt;
	if(ii==0){&lt;br /&gt;
		column[2]=tikz_plot_new(5,5);&lt;br /&gt;
		column[2].xaxis(;off);&lt;br /&gt;
		column[1].xaxis(;on);&lt;br /&gt;
		column[2].yaxis(;off);&lt;br /&gt;
		column[2].xylabel(0,0.8,&amp;quot;\\textbf{Constant parameters}&amp;quot;;anchor=&amp;quot;west&amp;quot;,world0);&lt;br /&gt;
		variable tablehead=&amp;quot;\\begin{tabular}{lr} \\hline Parameter &amp;amp; Value \\\\ \\hline&amp;quot;;&lt;br /&gt;
		variable table=sprintf(&amp;quot;%s Normalization &amp;amp; 1 \\\\ Photon Index $\\Gamma$&amp;amp; $%.1f$ \\\\ $E_\\mathrm{cutoff}$ &amp;amp; $%.0f$\\,keV \\\\ $E_\\mathrm{fold}$ &amp;amp; $%.0f$\\,keV \\\\ \\hline  \\end{tabular}&amp;quot;,tablehead,pho,ecut,efold);&lt;br /&gt;
		column[2].xylabel(0,0.5,table;anchor=&amp;quot;west&amp;quot;,world0);&lt;br /&gt;
	};&lt;br /&gt;
	&lt;br /&gt;
	compPlot[ii]=tikz_multiplot(__push_array(column);x2label=&amp;quot;Energy [keV]&amp;quot;,title=sprintf(&amp;quot;\\begin{tabular}{c} %s \\\\ %s \\end{tabular}&amp;quot;,funcnames[ii],formulas[ii]));	&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
% put it all together and render&lt;br /&gt;
variable prep=tikz_new_hbox_compound(__push_array(compPlot),-0.1;just=1);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
prep.render(&amp;quot;continuum_functions.pdf&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:continuum_functions.pdf|800px]]&lt;/div&gt;</summary>
		<author><name>Zalot</name></author>
	</entry>
</feed>