From 051ef73be47cf657271dd448f0e998903f812fbb Mon Sep 17 00:00:00 2001 From: weichengliang Date: Wed, 6 Dec 2023 11:12:18 +0800 Subject: [PATCH] update add_CTI.c << add_CTIfinal.c --- .../Instrument/Chip/libBF/libmoduleBF.so | Bin 21288 -> 0 bytes .../Instrument/Chip/libCTI/CTI_modeling.py | 3 +- .../Instrument/Chip/libCTI/libmoduleCTI.so | Bin 39192 -> 0 bytes ObservationSim/Instrument/Chip/libCTI/readme | 2 +- .../Instrument/Chip/libCTI/src/add_CTI.c | 338 +++++++----------- 5 files changed, 132 insertions(+), 211 deletions(-) delete mode 100755 ObservationSim/Instrument/Chip/libBF/libmoduleBF.so delete mode 100755 ObservationSim/Instrument/Chip/libCTI/libmoduleCTI.so diff --git a/ObservationSim/Instrument/Chip/libBF/libmoduleBF.so b/ObservationSim/Instrument/Chip/libBF/libmoduleBF.so deleted file mode 100755 index 63400befa404b98806d231811541d12d6fa8f613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21288 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 diff --git a/ObservationSim/Instrument/Chip/libCTI/CTI_modeling.py b/ObservationSim/Instrument/Chip/libCTI/CTI_modeling.py index eced09e..77b5ced 100644 --- a/ObservationSim/Instrument/Chip/libCTI/CTI_modeling.py +++ b/ObservationSim/Instrument/Chip/libCTI/CTI_modeling.py @@ -16,7 +16,7 @@ lib = CDLL(lib_path) CTI_simul = lib.__getattr__('CTI_simul') CTI_simul.argtypes = [POINTER(POINTER(c_int)),c_int,c_int,c_int,c_int,POINTER(c_float),POINTER(c_float),\ c_float,c_float,c_float,c_int,POINTER(c_int),c_int,POINTER(POINTER(c_int))] - +''' get_trap_h = lib.__getattr__('save_trap_map') get_trap_h.argtypes = [POINTER(c_int), c_int, c_int, c_int, c_int, POINTER(c_float), c_float, c_float, c_char_p] @@ -44,6 +44,7 @@ def bin2fits(bin_file,fits_dir,nsp,nx,ny,nmax): h[np.where(ntrapYQjSzC`1MB_dj*(CO4f# znfct`Z-2ip1-Gl})H$c>oH})?Zr#eg>x;cpQVa$`3#r2G0_BQqDx^q_gzZ1)2}DIg zfndV#aN!z;YwRlOnabcGEw-q6sw0h(Hu^!ZvER=4c88kRVnIj8>RZC`lj0(?3fE#i z-2fD|u2IWdw{(y5Qq}xn)+nTTeJMy1ooTIFZi;u0caR_mT5M9Y!px5&Wz^1&G8K>< zmvTBS)^vCm=%~KS4ZNAcEM8w<@?~=Qw3t^fkUENRjpY?y%VUa2_M32VQUY~`kvw%Z z;-R?ma8Z|K;rh1VMB!CBgzI_w1|5u&*Wl7jhVnPl4??yYb^h}1?#vf#zYdo%7a9vKw0n!g}WpZS#AM~_$@XSEOKg6Y(mL6v!GGsGapZ^^% zyit$D(^eg998VAC@gT&ba1FzC1&2{|9Zwe^z7m&aXB^xky0r(SZ$LgT8m&Xg)upwh zO-uY0@$DRUL=w&Lr2OS(?MaAtB2TtU`XK$=H`vOzEft>h3nqKY5^>&k+q7#-fAYXT zHvW9`X4A0i%YecH(NLg%CmW@pZ<98DsNLEaAv@_UP=8Ud;i7)h#sZQ;@_3;3)7T)rhrHo8_^Q(fj zyUxvd?CJZj&r&A;@x<$=&CkU@H`o8-7v{%5T=>MZ6MwnpIb7ARKX!0&(XoS%J=}0b z#eiR}`MRm>;=DSG zAs>?*6aad|f4vVl*z{U&J_>r{bG{Gwa`5TRMM<4vJ>jR%`)rKoM%mP3^&b0F3;L}@w6*K;Wg?5_U5K7fZDBctWreqBvPbwaE`o34^3GvULGW=tyT+;j4Ze)SEnHqsCOpC6 zGs#&X6m$NMYWUn?%u|bnzi@coG!@`Np29zKcn!zb_|M|-nMv(A1{!LA9(Q~{;q?yY z_!jQyG<`1M@P?#*+{5{_mryGN;aa{3ig5gGN&Q>I;X9J}tOG4;Pm(@YbNr*^Xb~nO zPl4v|D}^CK-d!x)`9ov$N}8!`ogkK|XYj$o%q0B};QU*7do;cMZ;ro<>r=Cb=Q)16 zOXa^8c?v(rMeW}~6Awb1+tqJ5{*FQwPX3F+%eV-iO%_ON{ocy)H{3~Bf)M2WvYEs4 z_`+kKS}eSTnE34Ca%px_!QtDI^t_tGHzdK|)Y>^kWvtn`;PWl3tgiCaM*QK3&nNgo zRiTLBD@P>wJf$VRvS2v4EL0l_hD%E(S5#L8OZ`hLf@)dsCBDEaKQZuEgzgIp{<5;k zr5+);szxXe2ZO%QieMm89ab~?bg0rF35Qk*!1mRKD(foHw3=|JDpKwXEWcN%sf*MK zVSklFsHqN>1y=}xaL^x#g#9(ODzEZ!kziFVIQvMLz`aD}EBA*ggj)ZKppP(pm439M zx+Yj9l&=hjB0-@%P*Girh+4+$uL=jlVX&!0(u4_eb6|__7uc)XFFd~&QpqHaU zpDF8>;We<@YU`Hjvw`ZW6+!fX9#*DF#0Ubsh;-l!RM)H~ZHyHn{wiUazp}ETN~ow_ zCe;2o9N`*Lk(T*uNn211!B>)4p(=FW4BxU~Bp_6Tmexd;LzQK@wbi+Kln+qq7GbK_ zGikDKZ0@++{LXY&YHaR!VNC6Ee>ga1d39xQ%*tRWusm3`tRm#ES~dpi@mGxTSNS1U znSb0EaD~~Csi&}i{})xl{^s)cqPTwBXhS%(g;U#|-fs+81z{r#Cq2j?!2AzE~BKD9A;rVh?s z7K7V#@ELOr^DZ-gTr7u!*(6q z+zG|Lj1F$o!FTH5q7J@G2iL|574O!;wR=2*H|XH$1mK}r2ftDSB5u*auhPK}>);tW z_)#5vln&migYzkvmA32PRvmta4o+)~{?M<1ehu_%pkD+18tB(RzXtj>(651h4gCM7 z0V#UY)Jl7At)p=J-rA8T2vT&PX|JXUW&F>o1VPE#f?sh|5mI}q1)-eZ{S)#@lN3vP z55-b_LnK9MVdPSLBH_)E;%UD}EIB(Q`QwNP%-I|>b+K}E@m}EloXX?lV~C!kodPN6 z(i|yqDOHl&K_fjTo&SnBUn$A^L2f5(WL5GF6Bi;c)CHyJ#Oo+E2PCf2*^wbqi~(A` zilU$qL$Plt#YdVc%Gv9Y_eqIwQYGcT!0~$G=sa9&k(35WPP+}LA!8& zS_fKea4lNAcQ0{Y+$I5BE{@vBROGtbCBN#LTO#jw&2h&=imS9F@bR44@>#>{P|duv zq9tu{5h{pnw3E)fve#}qE8dfkBlb)w_LO}G1AZdOYwVIkkxT6( z*=^50E2g{cd5ZP1O7M~2aUAl>pEwi=ctuohQmg}6$@>lkf+^PDAy-_lplYu@Pm=ep zn^z*AFP7W9v54I?BVO^KQ5+>u!k=yS*cy9g%x%wbHmzL}^V&zmT}regMcgz7J1J72 zDbbb!HVsldBkE`nM{R(pLbSmkrl&~JMvF7C@(dAyL8kn2^ur5=7U#>6On@@bJ}J-w z)F$J@MC44YKkY_k84yd{`aJf5Jh35m4=633SgGCQjo)SQ#)~XoXNxyJ%~B*j+~jp8 z5beL>yw}-G39qx!B|hBXzGDA%=Uq`{aFO`v{-TZN#f=Vd^EwZyI0uNd$aG2EI2>SC z;&h7R9EspiiscS*lpF1DLi>$*xW?jgNYVWkm$PGKtDE%TmiI?Lx!`v0k7R51Aq6f) z_d|}|BuA5x9xEVvjv|+{ef?30n^}KA+?s;XCxM4eLN7^bH^(x)v6&`sOtO%UqOAsR zd~`k9g@Gu<3Wt@%@@G@y&WblS$xd|6=mBTN`HA|5b=i&vmzX=n7#6odiQYiNWHHyh z$yj^F*(6SH$^o_~R%n-vSC_<$vxratQ7$7YGKR0DaSl2u&;c&)-Jpv(b(CxDCYAIq zjr1msl-1WaodtC0dZQFg7`@KpV*M=`O6b6h`a|MYGX_5?5vDbAEVhn{9S0z?L=AzJ z=W+WvJ4v*-<3cP|g61$Z=I@;(8)c^aoMyKZ_9T`-S!dni=!W_RaqGV_y<*TY^<^;i zIU2k%hc_02YUf)x-`JW|qbHU>rBk7Wsb|H}!bHHBt}RK_m3@GSsux zSbNqJA2KlJ$azaX6TKuv3dOBkS*;ju#qmN51R4g*fXg7d{h+%f=9d0ZSTQhaOf^Jv z3@+#Sx=&q(7Sg*Xwx$?^bM)2qht}OowN6E|ymnLgDo#)Jof1IIb9{Iz0D;2E|QTLiBNxXE!& zlK-q&O9>d=2N#DK=FeXF(}j)$iyh}&i(HFc_qcpY)N?^uWnhrt^*VBJ{a8_6NHSF=h&*-5Yz}o~LHK>I_j+CdG_d*+d|3v>!(7 zfYV4XwHs;LS@I%~1gjI|7x+$_H)pP|W0!qj{i>jN(kW_p3XT(K4{qmGDf z10AE4V$bX#=COy1utgc$+|Dwo?%38Hq9C|qlV*a+UNDJS9GG4VAg5u5>kzI3m~_bG z7tAr?r^E={)4*k%chjQ)#rkS_5`{}#FaXYH!CVvlPA8hOg6=erC)0=vjCNE2sqssi ziI0Cesh(w^fq`YPx*ZL%E%t242*eR!PS!RB2(H)+V{vS%2|h1&HOeen#Z%*jqZR87 z#N!crfl4?Cg^mWsPqCU%gaywPfGO66LEvp<6*vw#l=z)Wv7^Ba1s5>a`#E%P@dlbb zfqjzv2m3DQ!7FdE?;zF63C!wE8|`n9auBFjcT(Cq3``{%3jrzq1S=-jnWPne2AsO>0@ZRLEVZ&01d|GP4!UQ#7Y^wfy9uO^3-2DJ-&TU`imX9V{Q_zg< zz(FQ@^a3(;=)@Iw+ZCiY6LH+g95%JL8F}z1kP}!|KogH3FDFnX%C_imqkp+T=nVjQ z;!`ZZq;(g8HXz=H_7&2Sfp;xys0n#ra{bId6q*;o)EFR~6@!>{k z!WJePRyU?babqSr!WF$RSlmPtYV>)gNUX`Sk%OBceLEW9;kmy$D^?o~aPH_);{bG) z#d#)t0(Qx|!nrSU4fp@*dMuXzkW0@0h0D2b{b#iDcgvr6qI_t-OtC(>lytJsM*h71h`2S5cG3E$hB_CGpO&JqVAwN$r3r5PJh47;QBg|dix|Nb`D8MW`KifIu%Sm&)Oj`` zT}y(&0nqp&=xL05ChJKPRy2+S${#p^M?Oq=4ZtIrvlZ(+Mv6Ia4;zu^6zd99F>e9g zJRAmEnKaJG+<0A$^uWGWKo&06Cc3>6geP9K(#Cjo#WDuU86+`gp8a+0ZKKIi0Efnr z1HPB{e=Nh`k~661f!7YaEKF~XhPELrA`P|u1xdwvWC@!`U3b&S5VPCaZ4W%@J0mFi|Ncn?PdZj?%Qrx9oQI6S32Cemaz&mEhgj%>yH_!2mPz(F`X z#~}%2OW^nDuE|X^*zG99NCfl$1aksH{W1gYtv@AhoepDSj)+z@*;2g19)UxHTFI%b z*<^IZr^3a$_nWAlxW|H#xZ=f%H*RPC3Pv-NoZ=V2Ckv7w-6<^7E9?*o4w+!{Cr#Je-4reFiNP6;$%8H6IZNrf!DP*qj8H{@{4=y zz+)oK#^6lBl1tr{7@XT7Y5YX96xNvf%!kn6N#H^GD#+Xr9|{T)3C{6|xOf@JJp| z&L2^%(Zy5~0lN^pMB3IX|KAYJxAQO6_}_4u{MX?ooZ5aT=RHiyIn0`b347t*PXEAc z8|}{kf5p0gk-qUchZn+c81{BGzg*Y;FD;$=`IN}IxBsxIyMEpn0~FFvpj#DjHz9Ua z&^!O1emDO|H2$gI&fj%6?K|bX=9(+zba>>qTys3~ms0%4xc6RVaFxzstM7Q>OI)~2 za#AM6ng*`4s{|p}dc~)4e}c8kdr$yYZJ$Uv`=xl5X)Q(nn`{91K~Lh7 z6e)hc!JE@gZkQE#oEO(zPb0)6B|c11{lmo$$+9j{4r@X0u zoxJbdOm*CZI=ai-#^6^`-T%+>W-$rAQ(oS`=jSKM`@QyW+h~$^0_x~4?^g_d1J&JK z-j)*DqLgylJ@O?Nwq#Z7b(MN>LkW96%e>`Hn1ns@LB)C-7)bI&uhoa#fk$`yw2n}K=z2~zuK6N4I)Fi_(lSYwqdka=ykpp z{@5!wO3@E5Nru-whPOS=mWaudTKN7nxv&Gnz@!@k%#Uin8R zPyB9Lu9-a1ONMnfdJV+%mrS*BZ%c<1&u?XN#Yj0O*5q`_`FS1I;rlYX3BQ36@p&iz zCNdT?wSl}z+kK>o&fSf2>@T4DlAHwdcO=U}Z@dPM&Xe;dnTIF(k^!>JCs_(4xzMgz z5BWW~9=b`TniOj)s{(miGG#(q*pRrf5(^C}X0(^U%2bNaO2nt%BSM>$IGPF#c;oBH zHNHo#!i!C9%t_DAMG|)goxD8IpInR^ACQR~ZwFJa+yXy)gcxN{kLQ0(GLr*EB{nIJ zT~n+O(Y`sv`j_N&B>=#B5o1kdP=|$@Nq1UoGtnbYGKm}M;54mDOuLE76WwQ!5}%@{ zI;I(nW4+G5thwGBAHw>@D<3W22Gqt5ui;hb2G)stU1wtL2`M((jvGE?K3lVBdVI(! z);jU&6H?-%6i?#gl&&7YP(9r-EmoL^VFp*2aoTG*4U=XyWugYgUow2qoxjR^Eo$6X z;FUXc-A@Y1#3WFbLn22= zDyvWztNlQiI67z70?aOPzCU|Q*>~B~HC?P$FjlJheTzM5>oM0H zT7_Xj<|_5Z{f1r^V{mbbbrrZ`uZuix4ZO{TuBF&Hz7+Gs*Bcb;Oolgwt-|h>Zld)V zmSHrCJ@ORHau?TJjq&Zii1B^&yVhOW{S`)*CyO-k_+5f<;(=|*`&mAQyeBrrbmA9X zoki=M_?l-gC|ToCs_wI?`7B)?k0G43?=JD0Q9YKvnRH_(l>V~)@{l3>o1?4>YtfRe@9Pxw2kD;LW!mi z%3HNOnZW3SBp?>!xc9>y-v}lz?!8CRLdJvH1~X3cG*#wzXOP;Bc4V_5!a-!Y3Py6b zsbuX2Q0u?HhCk_KO?Up4z44!?z#AVr z5>frRx|QeO*-f|fFJNd1uHC-D)1&nVP<)BhHoaLEJMZV@X4m;vxjE4>%J6dHYfDaJ zsPQB0^@I+c{6bL-iO_-HxbU?5wfF`p+B!l0mM297(CDg)LHZYbihYm58EvwVg7|(O@t%y_QfwUDQN}tot zPvX*WDex!kS;;Ou%{wFB*my>qpH^@KYOwA>J$U+zCl(8u%f;NGHv+oSgq!OPkQKYG zmb4*&Xn9RP$DleWU@@X^(a-HD{_oPyhtvPN^^E~-CPCWQ`6e*%<-#Oi_41Briw0y~8>mHw zGdLeYjIP02TnZe*_~3XSb#s4>ZC?*dp-uiql)X^3`7XHLM5aX3zOnQXR=^ zAiY6nB&4ddL#oaaojQ9>ia)?KR)0Y19Bq*1^Ul%s6zMNE{tWccc2Bp}7UqxHVm9Wc zZ{YcCX!=l>mpzDZ(?c#xng~I}+o~a`jX3i?WGLBUwChFN@Q$;1#o9 zE#G!loVUoX?#Wu%vkE-az=Mf7__IAwVL66hK(Ia8jIkJo^ebP1L$!(7duc<5kk;6Z zV(wSs&*)D$#d`XKYO3$yL*=(X9C0#%AGvd6Vr6WkN`9q)l0gItn zhQ~CeY#hHy&zcMF;FN$*JbXsHt3~|jKM72ExYNx} zfZNx=n)nI~Lb3jfhjjvahB$#|R`a!*V$+8{$&6glxa^^B`(-_M}KalbXSyM14W3i`0`FbKGP-^r4HyL~?kQ@Jer{ueY4z1rQr zA7ExoT{;HEI{V(CV)ts_k!wh>`9t?HJDdME*moG*zuUf#!XU6OJtf(`TQfDqrVriC zjHVC!enutL+4n<0?_u9>sNFm9U4~A|xE?9JeJ>!gp7wnw(7wgK!QmL~6JcZ@#khR~ z5?ha=E({NhLqM<+O3$z>){lxA9{|B^=u1GsvBq@_(~@BaY@`7qW9uUiEM9@?;Q|)5 z0G=kR>@w_}|LXwa=|ck;-SaYOSaLSjeM)m8*)V|n6l)!;Z4s8z*j<8wHfZxnux;M$H4uRnETRwDUq#6!Y{&^3;_@F;kXBc zq#_yMt&XKm)3W z@28nyKKWehCK>>EZbMVuM&RI}Pa4@N1#n9%M_Q|R7AjV2&}u~^PW(fcs?_JSINyV9 zS@xg_=Y0N1HLH&q&b}}fY1l?Ko?lI-Wj$tYbZ{-65H#Tk8=cQdcysU!08`sfe}l3T z=l*at_Pe5VUn#@=Tf~z3Q;|F*rd|+pn`?8t^6?Yu`8B|dF@oJfi#r*UYr6YkoI+?b z)E$%LGuZb_0ca4OG#E>qpM^6^q6iB7=o zujL9fEd_~m12upkDQM>k^lo|zO?@aCiu+g4tQx{WcQ zAiny<^Ta3G(Ah>Y+A((h6dWM%$j9kvO-asiPrUHzlDPNk3!eB~gOu|!4w!~5Zu!=d zc*K6mC125YJEqU*DLhni8RRj=at`)g+is+JpKX%HCte(eWhFLNu?EAOh=ftGdR)*K zZLZSeQ*4c*014xXdRSz(S623ry|9OuUHgGbRt!{KHb>{l*l)8=t=b?3^K)W3LSJKRueQyD5H4-w%h zKlXF3!t(IO=tYCLkq)egTj|X&(BlYas~GqR3Z$G*@Vc!@?ac3?-> z(}v)Q;rzKo?5ask#@hf z7qsGJZ2IWi*m-Uo%+mZdn2v3~A>zTq4U^==(q63pN?l)Kg#EKYtptfRYhOw!4mFoo(v}qFY5ZdmA z2LQe%j9RFPG^|r3ZP|FAvCT;fLajYqoi@cf>vkr7+wgAdMeOR2z_E_^U@WYQ=ovq~ zs|5%BKc7fZ0nSMv-!=g&QJA3k;A$k=PC^Pg-H+|0k?%|Z9_^e(Phej>Rf={f5u?&_ z;`F?Q_=5!$wAR1MR_I-SB|(z)hkgz8YoK2P{Tk@kK)(k1HPEktehu_%pkD+18tB)+ z|6C2=?UT!bwiVIb&_WUxmydCPb(TFQl|Fs@v3P zVcuf=Cu{~?I3D?1^Z-X*9zbLDAY>LYa3|mJ@@n>~N*fZ6iCN_okLB?=#A@w=u%f!6 zu2R=v+tOgfkMhwg=_k;MiFaRys+QU4?Uy#Z{gT+J{3qIgr~bDEY%Irk@MKk`e-$M| zqZzHQHW(~Z^8k?&BDM%?Uxc+TqPDH7wg!@nCSoQLd+8>T)^?)}2P=a9+F%#cLBdkJ zWVFhLcYoU0yFdMrP<53MAR()4_k!1$EWDR-Q1@~hy`{8vd9ds{VdYZRD;uzHvf)Lc zXapWMP-wqnI zJ?h&#vvUNY_j3L+Qy}zS&R-1LXE}dYXrJZ$^`X6&JE(=~OF@CaLoe+ZdzpCP*7;J> zPKLek177#Hl@f9nVDDHYFFc3 zwUw+}FDdI`4>r=w?ek|p{Gy_qzGI-UgZdjgUqvp&cJ|U6Y4Gf#xwmB8boY)q4g0+lK7Ty5plHi02jltwarVW-SDw74 z_TcP0Hg7kN$o$8*UT8881%r0ZXIPQS?dTl?et2%w!$XZcFEmV_UFw>Ar!7(q$>_ba zqyu`FYpzNl*doh=wz`^{VAxg>s>Ca8ZPn%KXa{1@A6Ray39W)H*D@9r{_wKkXq!4d z%SaK1Yf~rCw>QXuvj0<2YLG5KydAOhyrS$vyt7eJ@CsC+;DDk;5I6sqqBK+f6-8-9 zydAM674H^BT!47qK}A`DcsJtBh%^5LK8Q`&F1&!agSHK^3)+ffGmjuHIHV{Yh)u66 ziaQPTZz{?*#5>vk9Za0CkT$X8S&vGphMj8uA;OfZhl`;OxU~K`4`BC zc=ItuS&q2iV@26O`A-yOC*qD)$bpzbh8hWm`(_D-RTjgwLk61Y55?_(<0-bV>pAF* zaLkq|=FDm0;FYEg!X3jW+&IpDJ%NedjcYsbI7 zxiz)eY>OMGn6tN}xy^Z-2Dr=x(SeeAn;|unHppBs&73#cob5K-CYduqGs$f73DnL_C0_X+s zUc@c{7NAm>InQOz2BXeOU8ocX*#!DC{pa^93VSa(lfg@MmQbA~opny8I;WZ&45<@R z`eX-gs!r*hh55+Z=hY}u4D-JBUsz0+({_5KLTCD<^|fwS^x$}F>O)*$KuQ}N(? zSWNvx?*QL$8FmlTRz(?&vTGiv7q{k_pdSv5> z*}VikmiJnRG??*f2e0SBi@oQ)tG#SYdZ@iqsZWa4F3Ze z&EU1~HAQ*7Q$}VhUF|CFW-FDwHVdADeAOG^H4na;{00SrwE|X}1iJv(%p{lve%zY` zvjZmSV0Q2;0L%@TgDPNS*h6D@s@XQ%oH@m8ahXlbhb{r$qRYVB47|v9;E^1=fVV~0 z7J}^qY_krQ57=SAHUfsfreZb|ha=3~lIk+sHW}UK>}c9db6&YQ8#d(9{4D!Kg$2I# zslSpg8&yc4djoXerVnZgwKoFXR^V#iG9cJyz`nq|s=;Vpc>*v2bFB7l1LWBEa%j%n z{g$GzZv#O0QOK5;vK9^!j?6tc^-dTqCCP`62F)?xFUMSZIrvm>2IkUC%&GrM6~bGk zJfZqWnu~V<&c1aqgX%?hr?j)q_UxT)wnbCeyjKdm!|y3d5Pn7-uWX*0M&nhYG1lex zyyhjT_7ro$^d5eX>PBGWAN)E#P!#q}3pQriJj(bnAH(?ZIjAP}V;ZwP8BW)RgUY!7 zw_gMO8tB(RzXtj>(651h4fJcEUjzLb=+{8M2KqJdKR^R`uEB!Vl;k|NG}S=&*a%vl zzL`crR3o8~=ZEmTU{e$HRD*){-9~H$se$8vc}b}z0PXivz;+4?9h?zuO;G6I3GI33 zk2t+{vyH#;VFBB2EbQE>#<-g-`m1}&zuUPx;`uD}JpAXl-HZ`^$T*yrb&yn#gdFtfJx7o4-;p*C2 zJcFyadHPhFBX{h$+`QcUeCN&ny!^7f9NVqcG7p84X{H~lAeb#xK-G|+oS29{-TTO-NE6= zu<&)QSDh}U~1YZq!Z*u*F;SUvx%GCDfsgV%t1D~E5Q~RG!;{PiS-<<^C*$1De`+!sR zy|t5`K^y2x>`8v<0E74RKW{O3Pe1kn;5cN^!+)OPd@{NI35&ud2Jh+jGB9slsiJiI zrSIh0xlc{vQ2f4Bmsiu$IfUqfjkl&sCB9cZT0{UVDb~--SQAqoB##&Kc33vO8#!R$l*oTsqJTHPLTYP!`Z`4 zUe5;c8KAMgm^mY(QBg7e=sRxQ-(UB%%w{NxvJmQc^(JEo}k z+V|NX>VyB^bNuA*zyF%Sdp78Kj^B_Z?*R_q#oMDjC;nd=|0KQr3Gm+JJ;d;P*84H% z(=fTaTqpbBL+2>SPAuF%X!^OR!FfArT|!|n?7z46SopZu;8F3|GiM~PW^fgz|E1Rf zQN4M$s?dGBFsBdviG9H5F*x{4QyH*l+DOt%3yA;BBzy1y-^T0GN2@uXmLe6Z^-Gk) zcX9n_dUy!%>-7wHn*L%LvqFzbo&h|)7kmLnY9n;6Ha8&P)NF-sS!H#VuQuYx=i>w6 zNNuF9yc|V7-{jI6vwU99>{6c(IkzrX77XJsFHT{GeUVCEprX1eSPPW0YTvSo>ZSe) zUsvtR&WbL!7XEf z(;+NlaUPH;QBc6JSkfsh^H)|@RDornx|~?#15&G25~>YG2sBn$##7@2b_Nv4;h;Z4 zr>tv1$-ALbEw$CY<^HO&ilE?g&!6rp@k|EF)ai44#gb3epyZwfP-)3zO_x)>GbXvb zz8O=d%q}kVmAWQ*i+$*bV6doYs@F4VvTtne*xd1g&r@3B>*{APpk6NZFGXF1?dyI( zSio8N+U^|CH$HaKTd0kcg{rz2G8XE|W^^Arr!ADjkZO~gL58YU$WKy38rW*!USDAO zy*@g~-NiUxz*+bpJN)j$NqE-FDsAVfXQovZrk?y3U`A*uxONQ#7+{yyRb(9akAy?3 z)C@oKEzoJ*>Ofchs@`V!mIWh8(BP^XPRjYH<^?6ztQI2vDqab1lFwHY4pl|UNyIMh z<8t#=G=5~9S-VhCy-X;tt_ddTSLF{YUdd_n?JpY_30A?pV5J!Is#ywjz`Cn45~X}) z7^jW9!+gH-zS^c5vuZe+d+261G&)s@S?_D-yrKHQD!&gM?XL*kms}q?D>5LMNcWZq zxwWe+BmSj`BVjdOuBDb$)#Wbt*De=w%T`wbO^qXAA(u+%4?XB_5A+!y%J4S}ej*TZ zS*5u(6%m1ca+g&j5ecrsFEhv7aCMnK;ums*%YCW~TV4iwEhpqMCxuGMSFyVNm7xF< zjA&^sU~r3-!Kz4a?)k5UjRFDfv10mBgO=cN2ahqmvY_2BVtQZ!udNc!VNX*d)Ap&f zSYw<_&&h=>BxudsNzeCnwf$Xz=czseF0FoTU-o9eh<7JFZIB>n`(N6=unJXqXlaUR zAB6U7HF|A-Op7-V5`xx#4Nr?Fp^Wx`wY;{Ero}}>jF8-Z6)FgK@iL8G+i%liZC_fe zKUw~TpeMa>HFeG7HUJScJ*hdh9a@@VKQ2AJ%|=kLv9YMf+DThWX>mEw^z?b0PK&kn zs@%HzPlMBDxt_j=(`#{io<^z0TD=;y4hcQI_FO@W%^D()HM`Zo_j7tp|H2Yp!sByE z1U6o*MNuTEevMw+hty*F+X;P0VkbO=LOs2P7v^z# zHP_RAexF1yY~z?4)HvDxwfZ@hup0@2Y3;Xh`pgX~#tyAx)vRFSu@?Oi32I`V2H>$q ze^U}%6GtB>Rlz8v4Ju&+_h%#r-KuEq*W|haFsh5D=YLzAX>UZ~Zp;ie> add_CTI.c +add_CTIfinal.c >> add_CTI.c diff --git a/ObservationSim/Instrument/Chip/libCTI/src/add_CTI.c b/ObservationSim/Instrument/Chip/libCTI/src/add_CTI.c index 74bb6c1..331c7e8 100644 --- a/ObservationSim/Instrument/Chip/libCTI/src/add_CTI.c +++ b/ObservationSim/Instrument/Chip/libCTI/src/add_CTI.c @@ -5,11 +5,13 @@ #include "nrutil.h" #include -float poidev(float x, int *idum); -void creattraps(int *seed,int ntrap,int ny,int nmax,float c,float beta,float **sp); +float poidev(float x, long *idum); +void creattraps(long *seed,int ntrap,int ny,int nmax,float c,float beta,float **sp); void addCTI(int *a0,int ny,int noverscan,int nsp,float beta,float w, float c,float *t, float ***ntrap, int *acti, int release_seed,float *randv); -float ran1(int *idum); -void CTI_simul(int **image, int nx, int ny, int noverscan, int nsp, float *rho_trap, float *t, float beta, float w, float c, int nmax, int *trap_seeds, int release_seed,int **imagecti){ +//int read_fits_2D(const char *argv,float *galaxy,int imagesize); +//int write_fits_2D(const char *argv,float **stars,int *dim); +float ran1(long *idum); +void CTI_simul(int **image, int nx, int ny, int noverscan, int nsp, float *rho_trap, float *t, float beta, float w, float c, int nmax, long *trap_seeds, int release_seed,int **imagecti){ int ntotal; printf("image parameters: nx=%i ny=%i noverscan=%i\n",nx,ny,noverscan); printf("input image: image[0][0]=%i image[50][60]=%i image[1000][20]=%i image[20][1000]=%i\n",image[0][0],image[50][60],image[1000][20],image[20][1000]); @@ -17,301 +19,219 @@ void CTI_simul(int **image, int nx, int ny, int noverscan, int nsp, float *rho_t printf("t t1=%f t2=%f t3=%f\n",t[0],t[1],t[2]); printf("volume parameter beta=%f,w=%f,c=%f\n",beta,w,c); printf("nsp=%i,nmax=%i\n",nsp,nmax); - printf("trap_seeds = %i,%i,%i\n",trap_seeds[0],trap_seeds[1],trap_seeds[2]); + //printf("trap_seeds = %i,%i,%i\n",trap_seeds[0],trap_seeds[1],trap_seeds[2]); printf("release_seed = %i\n",release_seed); printf("begin CTI simulation\n"); float ***ntrap; - float tmp,*randv; + float *randv; + float tmp; int ntrap_tmp,nrandv=100000; int *a0,*acti,dim[2]; - int i,j,k,l,iseed=-1; + int i,j,k,l; + long iseed=-1; ntotal=ny+noverscan; ntrap = f3tensor(0,nsp-1,0,ny,0,nmax+1); a0=ivector(0,ny); acti=ivector(0,ntotal); randv=vector(0,nrandv); for(i=0;i0){ - ntraped=0; - tmpntrap=ntrap[0][i]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - if(flow[i]0){ - ntraped=0; - tmpntrap=ntrap[1][i]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - if(flow[i]0){ ntraped=0; - tmpntrap=ntrap[2][i]; + tmpntrap=ntrap[j][i]; while(tmpntrap[ntraped+1]<=height){ntraped++;} if(flow[i]noverscan)nmove=ntotal-i; - for(j=0;j0){ - ntraped=0; - //height=flow[j]*wre; - tmpntrap=ntrap[0][j]; - tmptraped=traped[0]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - topoftrap=tmptraped[j]-ntraped; - if(topoftrap==0){} //do nothing - else if (topoftrap>0){ // release - for(k=0;k0){ - ntraped=0; - //height=flow[j]*wre; - tmpntrap=ntrap[1][j]; - tmptraped=traped[1]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - topoftrap=tmptraped[j]-ntraped; - if(topoftrap==0){} //do nothing - else if (topoftrap>0){ // release - for(k=0;k0){ - ntraped=0; - //height=flow[j]*wre; - tmpntrap=ntrap[2][j]; - tmptraped=traped[2]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - topoftrap=tmptraped[j]-ntraped; - if(topoftrap==0){} //do nothing - else if (topoftrap>0){ // release - for(k=0;k=0;j--){ + //flow[i]+=poidev(0.01, &hotseed); + ncumran=randv[j+i]*10000; + height=flow[i]*wre; - //if(nsp==3)continue; + isp=0; + tmpntrap=ntrap[isp][j]; + ntraped=0; + tmptraped=traped[isp]; + while(tmpntrap[ntraped+1]<=height){ntraped++;} + topoftrap=tmptraped[j]-ntraped; + if(topoftrap!=0){trap_release(&flow[i], &tmptraped[j],topoftrap,randv,&ncumran,f[isp]);} - /*isp=3; - ntraptot=ntrap[isp][j][0]; - if(ntraptot>0){ - ntraped=0; - //height=flow[j]*wre; - tmpntrap=ntrap[isp][j]; - tmptraped=traped[isp]; - while(tmpntrap[ntraped+1]<=height){ntraped++;} - topoftrap=tmptraped[j]-ntraped; - if(topoftrap==0){} //do nothing - else if (topoftrap>0){ // release - for(k=0;k0){ // release + for(k=0;k