From e4bef462a4b1c33286821ed98875121ae7a59e04 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lenain Date: Wed, 31 Jul 2024 23:11:45 +0200 Subject: [PATCH] Automatic documentation (#141) * Use Sphinx auto type hints * Use recursive autosummary, to have even more automation for doc building * Follow configuration for recursive sphinx-autosummary from https://github.com/JamesALeedham/Sphinx-Autosummary-Recursion * Adapt Sphinx makefile to clean _autosummary * Fix docstrings * Add custom templates for sphinx-autosummary, from https://github.com/JamesALeedham/Sphinx-Autosummary-Recursion * Add some inter-sphinx mappings * Don't inherit docstrings from base classes * The order of imported Sphinx extensions matters * Fix PEP-8 coding style * Fix external URL in doc * Logo for dark theme * Add PyPI and conda badges * Suppress warnings from sphinx.ext.autosummary --------- Co-authored-by: Jean-Philippe Lenain --- .gitignore | 1 + README.md | 2 +- docs/Makefile | 2 +- docs/_static/nectarcam.png | Bin 120605 -> 0 bytes docs/_static/nectarcam_logo.webp | Bin 0 -> 84146 bytes docs/_static/nectarcam_logo_dark.webp | Bin 0 -> 81318 bytes docs/_templates/custom-class-template.rst | 33 ++ docs/_templates/custom-module-template.rst | 66 +++ docs/api-reference/data/index.rst | 11 - docs/api-reference/display/index.rst | 10 - docs/api-reference/dqm/index.rst | 12 - docs/api-reference/index.rst | 8 - docs/api-reference/tools/index.rst | 12 - docs/api-reference/utils/index.rst | 12 - docs/api.rst | 12 + docs/conf.py | 38 +- docs/index.rst | 2 +- pyproject.toml | 1 + src/nectarchain/data/container/eventSource.py | 57 ++- src/nectarchain/data/management.py | 53 +- .../makers/component/PedestalComponent.py | 58 ++- .../makers/component/chargesComponent.py | 362 +++++++++----- .../makers/component/spe/spe_algorithm.py | 462 +++++++++++------- src/nectarchain/makers/core.py | 21 +- src/nectarchain/utils/stats.py | 5 +- src/nectarchain/utils/utils.py | 28 +- 26 files changed, 815 insertions(+), 453 deletions(-) delete mode 100644 docs/_static/nectarcam.png create mode 100644 docs/_static/nectarcam_logo.webp create mode 100644 docs/_static/nectarcam_logo_dark.webp create mode 100644 docs/_templates/custom-class-template.rst create mode 100644 docs/_templates/custom-module-template.rst delete mode 100644 docs/api-reference/data/index.rst delete mode 100644 docs/api-reference/display/index.rst delete mode 100644 docs/api-reference/dqm/index.rst delete mode 100644 docs/api-reference/index.rst delete mode 100644 docs/api-reference/tools/index.rst delete mode 100644 docs/api-reference/utils/index.rst create mode 100644 docs/api.rst diff --git a/.gitignore b/.gitignore index 43202e4b..93112cd3 100644 --- a/.gitignore +++ b/.gitignore @@ -92,6 +92,7 @@ src/nectarchain/user_scripts/**/test **.log **.pdf **.csv +**.png #VScode .vscode/ diff --git a/README.md b/README.md index 1524af1f..12515fff 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# nectarchain [![Build Status](https://github.com/cta-observatory/nectarchain/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/cta-observatory/nectarchain/actions/workflows/ci.yml?query=workflow%3ACI+branch%3Amain) +# nectarchain [![Build Status](https://github.com/cta-observatory/nectarchain/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/cta-observatory/nectarchain/actions/workflows/ci.yml?query=workflow%3ACI+branch%3Amain) [![pypi](https://badge.fury.io/py/nectarchain.svg)](https://badge.fury.io/py/nectarchain) [![conda](https://anaconda.org/conda-forge/nectarchain/badges/version.svg)](https://anaconda.org/conda-forge/nectarchain) Repository for the high level analysis of the NectarCAM data. The analysis is heavily based on [ctapipe](https://github.com/cta-observatory/ctapipe), adding custom code for NectarCAM calibration. diff --git a/docs/Makefile b/docs/Makefile index 3f474726..b31d1965 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -20,5 +20,5 @@ help: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) clean: - rm -rf api + rm -rf _autosummary @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/nectarcam.png b/docs/_static/nectarcam.png deleted file mode 100644 index 8f28b617faad6f4a9ea0548571fc83472fb10a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120605 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%0A0eB07-J7X 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 IM6N<$f(v*i$N&HU diff --git a/docs/_static/nectarcam_logo.webp b/docs/_static/nectarcam_logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..cb468cf48afffe3ea69bce8f1f03d9509f243bf9 GIT binary patch literal 84146 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 z z>={&WPghX;HjkMT;o6Sg2{{lly^dbKRaEwOLIs zKL6sXXf@DPBgK*uZwtjoS;p?h+D!&8zTOh46I^1}Zgf2`%Ak+0JTa=|b|He}a$(>B5w4#5GKli-L6d$fhKELcIMmANZT%~+Jo-|MbI=eBFk(2LD zP)FrB#S$A#kA?F`%UWYR)ket)!wVuq_uI`h+#gdGNV~n(refTD`#_RA4T=02c&|r~ zZ%f2$Iw5OIg%hvs=v&NEF|9+09xhFNjRswspy=v6Fz`Qhye1YU7s#bfw<18dr&&>z zYtEw7ftl*Cfvx1_tl4L>*I$K(=6^LHpdj0;vCiC?u@-9Ox4le>Bc@QRt-**;xo}cb zNDZqZ+KwF~F#7F>NCR9=7&l*5V#L{fgMT)ZKf=A)?m2um#us#@5*eeyCNsVa3`LhE z!Z7gYDQjgJrgh<`*iR;7{Ro*qR}XB@FDdaIGZq^{ zQ5mdONKX>ACdvH9m__k}rP?j28`FhQARQh51G$M+zLilD5(!YxUuQ_n`c2HZJ&R=_i(Nl!_nhO;+u97uEFwpey}Pf(q-w zO)CcN)_$2|Y?Ni`%et?NUidgbkX6CcfYsVBMM>RqVax<{gV&hDE93bqoR%a&0P6;+ zD!_IsC(mwP(7w@f=qY)dvD!*3!*&MR)T=<4CUvF%l{q4KLi$~IN)ik$L(#CqlI3=} zrtPy%{Oil!k2+$UOx8#A7G@${MzgK&d;|7O5Ua7Q>!8BZlFrCD_^1T1`9LzVHeT30 z;&*qroQh&4y`#+9iVTaDqfRKAxZ}1`UsHCXH$U#OYlX&mIfyokL1K>BI70u7TC$oDM$p-HP^VfY^(`{p+x_`8Bf~^!N;MdL(Lsh*1vncsibP9PYQ3CSO ztL&M))iPXI4bpfksEyoP)n^WiL*SMef#s^soQHyaR=}H#8gQdzA*_aV#Mv5t+w@|H z9+nrlB4`Z8!n5Q_K-(6<=Ch>eRg1fp($~JC#irKN=O#N zk|aJ?R4KyZ!I>)5;bT=TS<{ zor9kv3}cHoI9?6$2Ty6kLL&CUBXD#hi1%EE_hSzv#7#f!?Ei{8V%+R6+E$ zZb*5uZ63*IEKJ+mG0=aog~-|XeEyb1AZ3Fw(2EE(utpx9L}x3gtosW3Ns%q}hgXm` zswqD`r+!mtEa!B>(fKC{v?@efZ7qP(%%tsnm_4B4{k3VEu5n&(qFLMWol!n;{PkeX z(V~}3ybj+ta;S@s-(Jm3n|=td{nr?`Z|stwxM4;E2mr_UE^ zM2;#d+=0n&ioxxK23ACy9s?fGLT?QP6e)CehwQz6~3bawFc+U?p9;R896) zeO1lz0qJrvF#r^kaTewzGAlH-?&eY#){j}%hDr4XKXQ5eqU(Ksf2z~kO?}FvyJ7$Buwy0K!9f7LYpP7=F%jO+J|UXCmRh{~D3 z!LEwC)$yUA2qa|Y<_KBw9wUTAjTXI72Y%JvFZ7AXDe||9*>~rPd(-+#*Zfb;r+Bl~ z-eYvw;IE0iq%jJ$XgSxQr3)nVmg%7}-PCAZEk@>;u(#VSuXjbU;tEzsRD=40P{lRT zJHIem^B&1c%FOefP7~xM<&mb5SLgL0y-m=VQ0qw3?LUfqJha7(9xd`h5QPRCGVHg9 zvla3MX)MV<>V7O2wU`%~FAD_6FGg#eY|i)t0ODHG5`nY;fV4Cn;1%R~6$vtdfdxQ8 zC>3Z3`8RC`$$*A}0l+}=Lm>$RLcj35Bz!2iKj$b2{qAo%2}0BS&GRC|3Iz>7g`6`X zi48(yLC$56WEu8XT^$e_GIfGj@bZ@h3t1}|a`n$yQd(Y#gpG-ng^8U7BG1Cc!NlnY?X_>@%CG_-UaoLt;IynLc!;u4Zl(lV-Q>Kd9_ z+BzntATx6dODiX57gslT56__BkkGJ?;SmXmNy#axpVHDl=NA+f6_=EjeXXslZ)j|4 zZu$PByQjCWe_(K8a%y^Jc5Z%QZGB^NYkOyRZ~yH4;`im%_08?w3$7QO{~UiI`yaU8 zKyX3B!ot8Jyx@X@c6$N-1{RK#6&^!a8NtW_lZ-9k6_!YRUQHJwIlIa!wz1VNpM9q!PocUkQc>_lT$NHZ6?a! zr7M|TvpVkmzU_4cPbCx&41Z3ne+E<<4hXXE?9(r9oEii;l!CB>FZYjHwQj>|tH7Qc z#RphShmY_%dd|udyw7R7Vl7oJFF6*v(m1P8i!bcrG3E*s$nvqATwIj4!wr{HC0Ur~ z)i@ZfvYgVi{xMl!VKU6f$-W(^>o!jZ=IP(zCDw_l&yS!jcr%(+ffV|*21MUks5J}8 zYjW3mJvg^%+(fVJyploqI)^LP;VmtmEFCMroW!-zf>I1^yruM561xgKCu-GTW0s{> z@p1g93m8D1T|7}~<>?VfA8#MbCKN0a{1s=zU$I(HG`;#m{ka4>R&&D1^@&OP=Lq^w z2S_xZ{r`_?zwQ|j=1V!nOkRJFKEEOb`)i5EFzz=6O8oC$>*VUf<4axoc4%fnn`Z zXYX7I%JbX14bBSXlg}R1t=eYtWnWDYY#lBDYzn-i{Ah|Yze}1$xYBF-RAkc+?9zlJ zw%JKkzq~HEe+I;BfH`if8LKEm@Y?*5O^VR`3}_k6xkfqUv>1Xc=euBuUOiaR+KJb% zCfZDXUvZ^ac=*8Di;hrSX-OCUp3Udl<#mIG<#bZW{6z{73vIh#^)bI(Z&feef$O2< z+pC)mYTONgJ>TT=8#3_Bxlf8F174gh64d;tO?G|<4Lz+(ZQ5o)@w;QnxYuId;6A6- zm(;@D$gfwxilWO?H)DV0&9=Rj@#q}Ii>qd=!;_>=`kZMh2dcWI`28ZmBbKrrwUV+p7T|v-O`p^1A9n`z70Zex!g+kQ>N-))fl&p*)K4>=fhBXSH50Z*2HR5k5A5A<`PK+8Uw&?~W(%1KXt6m((jVb@Er5 zzG`Iny)wC-tEVMSM~!{L5>x{C(5swjiq#+-35&YPPq#n~y9$ zj=j8)Iq+8$Glas>y00seaxk5BYKr7C*-Qh2^NBi%y%d#e5!9xlw5XYKme9K{jpwCaU|;R*+ewSz5} zt#-!@yA4Bb6}sQ=x!&GJX3_xM$~D>e6FWaGexyJli2bqf(dcO;mYm9R9d8NgQ`bK5 z;y_umCNwCRbKhekmH#%SOQxc~Ybs7{ljYEo4*b>dRqlORmcFELOmQQ@tf(ud>#9-h zlB^4DiuuYWN~Q_t+X@|*#?}S@r1PZ`UWWG3X55ETojY0Nq6TK{tu}CD{10@KDYaQu zZFy__1w9!*Z@opCOaRo5z*F|)-7LX@M1|hlD6&jF9Ub4C;!T;+opMiQ_^kA?nD)vcMpCpXYTV6_ zbGt;(?X{PdYl9_TG@4ivw55>DSw@{d#5bL(m>w1K&7n;ifbM zU?%DsCW+>NU*Gf4hxN{w1SIx9xoioLPUq;%n6*+y`1C_oRLd{4PF*vXcbb=AQnjS# zG@H=ysk0p%JggW|Rl4$$0Pp4NmCe*1Zh1WeLgFoEs8wdbM^X$Fei_ezYV9Y;8hW!m zI>9)!4PuG7x4y^lljmpsT@N1Ht*c?4n5&G__iz>}YEh(mDd0hS-ac=)1HIJlVD~4I z{qcTbQ)dHsgf}IXHCkozkNSdMe$C8J(gYls+bR()Zt_=FGqN+s&ww>adWefi=j_~5 zyY4ze3>NPt-fS&(f9>NCj`H5wS`vB}%8MPO-%xv|*o}Ye?`++F=sTjU>M0`n%j@_l zxqFrhbzNWZDk-V0C7IrEnfnCC+4UlSfI=Q4dgT6#!?h!y4_%>BW5z(TR@Eh;CJ%g- zBuN5y9JabaZWF>Op}g0Wb+5H%Y0u#jcDSl#yjub$xdWlYN*!eyGr^+ve6Ai?gH9H1 z)bOc;eSq*x-M4q2)DllkK9+$Vo-z9q%tJ&i<=}j>RKC!`bzlvh;=NEn0`FC&>EyVT zlYA-XQ27I5we975bh`2CbTL+Xn?Ass%nuQL&G-DZ+B*3X01|0BDm1OA&FdcR3#x=G zY8>j(q*|FpSu8_?hiuR_WSuHxRdAqwk z_@nK}+S>||i*$$h&71Cg ztax`4woMocW#gb0@+4sh5wOSKE>OMkam96AlG9mR-Ra#%$WidIO1>%~w%<%rf16&2|pOzb zyFmPI?<5ZlG&fL1M%B+;i+zl2N$S%b2XK{|4iykeVV^j+W~=4bx5PzPq`8^Oj>?(# z3UU%P-k%OeqTL*9!HCOKNTtK_9DH<1T{em z!@6Mm?#fiUVV#Mit*5f){aOn}V?F2+l*!Yenl?%}2U(j6oigCz@zBR+WM|RQab)Tq z%jHu|Cqr)haf1l&xB*N!XOir!t~;Vj+6FBn%c{-uWL?{zpn(x|!kQD!mzim1yg~Us zDw9$4rdhPfAnk55uVAJAy+lgGcum6AHpz*&5P)X`VUjbRye>vNma3VR(|BVr+LCI^ zwc#CPXn~se$4~!$cD@UlFp##h_YXX!QfqMC@Mk{+V5?N_6Db@x*?}2edlCzwX#3_>$u}Vj-Y%XF}vg(*BGJLn-jFtmByZg{9io__X1xHo;P#eTfOu(j-8^-Whm8a-rsLaFxp1k}b5CJkNlGSv-SkfoM>r zH#@hI8RB=yXLN~mq0z^nanc&0rq~C zI~MEh*D}v+Yik(XBaO==nmq&7=}O-b5-D>~G=h9sGWmW15zv}PL14ys^z^BI-w2Cb zG3|Y+&HWW?)or20VTTY$WGfz7_BMPBUR)c4UzBG=_JPFIv5oj9mm~1=4qKE7Z;x)v z)N$2e#SwK}9hb!b(lfxB{jFf>BOHSPX=n48s*IViHCEwN$&bcbf^&Gk)Iw?n8KeZ= zMnA>fXI}eXf$i;&avUKg$Kk5Mi1SAc<+d`F zVkv5zAHMFe=QBWgDyGoE#9|)sDS<3L4xWz|VU_oh4x7$-mSQp~VWyjR%29!93uK*x zZl&Y&<1x?bYF!cRV9pH;z2Gldkc&a{;PPC3CRtWr1CVA^Fmc;5|d-!T5sXs~3V zBNHln*w5z5Z1zCfe7)KECZxV2qo@{vLT?Ds($SM}v8m6-^=O;6z3|F-NEZz8kEk5q`qrId6|B8^ zYOm|P#*G^*lUHmTvDsPono4XEz}mu*9bLUEtv+c8Q8XHfh*6M>Ma^Q{J+chH{U}eT-E@*$xk$ zeq1C3Ap|3>wY}ML0UPnE9I>m$4A0e5M0sHzaXYW~zb6)StJ<9#Robp<7jAvM<%!b+ z#g+ulv%`LuF!R$_iDRsEq}el?*(C@yBSc+Ym8UKwAD7a}`#J0k#(zw1tCyqMWywXV zrH6EC7ZrE&ZC_DSi{B?Ps9P@RdTUllvRRi`m!ev7UD9G{9u@9(+6OX25Q zoWjXSCto<5&Ip`veE|DW*AE}8(~QURLtZ-iQF>9E9p1L;Q#692>3fNg4N)t|u6{~_ zi+e|5O5rWP-KJVYB_t{f16HKNS3>ugW4s8)XN3@~v77&^?VmxORh!c_Ve9Q`}5+IGbwY`;2#CA{3|b>LF{1ZR4+T3O}ftkKY#C!N2{Dv3Ft((P0%dg$}2BK=t5p5S$Q zrpISlYbRjxlpEJMRyupKkwN&{37&A7;kUcWZ;ewM{Sj+n{VPF>Kva)K`~T-EJdR}RGxE-*D&FL{~55#*}bBx@9w42JaMwV$d6wC4T$Q4kT=X3lg-3< z$OyJc&cXD_|Cu~X65WS)a$o?neqVaxty`+MWP4%yDY0oYARyq@xK=CTY5IPkWOsF; zGku=kW3_n_pHBHIPUXsRzC+hjUq&YxEf04MO8>iZ=4P3y0*$*3w`4)Q&ZL+ zsVKI!4Us^4kFzla5Ta0#I;QavGuaf)QB|X<^lj9bX(sB$X^&LW|2UsDRom!2Y2NB# zNT-eE44C$$=QgnAZyc*Of46kvP5(>Ytvk@-XgHJVbz%1UPSxSYJ5i!(dT*XH)P}~# zG%Sr&_6{P+zzs(c#BZzL$n$`xZk}kRCHq`C3;6n#Um8L=V?^?_U!StK!BH2JHCA70 z)uCcjMO;Dou(LI0AeGhp7VtN(^5aXNW_3Og|8BYL{Z=t~(ZI47^4s#w_UeMJipaSb z9sH_GvAAwKxgE zV$5IZQQ<;!P4IFaC6w;v;s0GNWQVug0*lcbj(W5RrgEn={`u`<%4D_Dk#Dq{(OOF> znj~5j0nRhtxJ45=in1ahOt!_PaNuH9djNy z(&Nm|DZfeBwYe}S2Mm$ES8^T@$TV&j{l1DuEY}>N8%f!|#5P$AS+V##$|EmF4c6(@ zLic(>Mxbk}w41BKLMPXw0s#;|nQnx`uLM)XWrn*_#T=_*OL zv<9@=%k#9{SL)Yarxy*I=s}l0!Ip!XE`)`Hby03#TUNzgAJJUF#!p_P=8Rp|_JCJv zu6qj&ZK$Bq6)VkR*-UW`u4rz)X;Y&-Jact(tkrLv z)-4)bb%-GgtE=P})7{Ccs#ES5?xc5}{c0!rQ<5y=H*!174_~s$>}!#!^?Nn*>zW_P z=WOujp9Z6LGNC4#79Za!Pogm$QL2&C)2Jwi&9v*_rmIgnFCXo9BA7YK$gppw#9sV9 zxxE(0ry0g>7C#`gR-Gi&8M)HBitCbIY9{32R~s$W+Q*sDKS(!T9wLYLAdBlB{x;$; z%d_t^wf=RtVoL$@Caw}(_j~L&=DH%%GA?a4wsh{!S*7+a<5kPzbcISPu^!$5V>SV28~T&{yZP#D{+S!^K(n{OrPBJeVJxmM?p zw71sdHnwDw?k2pZyE&6+!N$4Q*!+w_$G+w8dvE1S&(>rm4WA3IhjV+PZ)tnZV6Sa! z6g86b=jOJp&aC67?O5FjZ^X4MR_~9_lpWH5pVxV&B)=Y)e5|};5pE<_rjIX?f$&pR z24XZ0_;;^g^$}Y48J{tggDD(!MjEzo03vz9cL6=(0`*RAK39uPznYqF71PL^&VN@B zDJ{ir^M_J6=d(zSRsPn2P;l=|OUq8Qd}Inxe^)n3eeLD+*+QtJO{= zVwh$^lWtTr4H0@$Z?kVIOY%vf?76M7ej+G8y&o#oNm5Z`IqUS`^_9^8(p`5E;l~c9 zpreg$Cw6d{MTs{Bg%~T6X9rDW^K)BTT3?m&zbPKZwPEWGr-j*l1$4NZO{VHBq3E#t z6it>jUL$;8yPuyc7$W}+K(zZ9`e3b@%d;>@$wR)U>m%;PskpB1QMEcyO7HV?qKb6n zYtpZRghuXmM4v&G*x~$XPJQC9H#4J(G8<|ii={ppsCm|n1 z!TidieBbco;sY|zS{>GEmRzcV8A=_^B8e+YQpII$1+jzWCO|)(g_O5gIE<*6x1D`Y zh*>iAM0FWKm+g-YdbQMIA1~DzN*CAbo*j%58SDv%j~FT!$;YF}=lZdgU3w z7*lnyPW_QOBsb8a@&ifLTs}eR1_Hlt^6;|Z@+ymUYnmDP{h_7?9aFM}OIuqAL2-1xDBFMiCIb76M{W#a8mg9Dw<-I&`6WcIn9 z=IvJ0(fp+O!-OjtB^4$96)DzWGWb#F!C%CsJ+jQ*c7T0Pm+6$eLOHSwlEWyNSS3l( zvDqw!@9IWYYMWJczWbI}4jG2jW#$!MUT3O-sNJe!Xg%K_Txig^w{|xQ5S|Wa;*&G5 z{_KHW1tDqk?PT*lxC_+p_?@QR#2z6EUiHlUcHHOo&ds^<^i3XjU+lHNiTr-2kz?mV zG^9B?-xiAI4-Kz(YLCVObkc)!nsm(KJR%*uu0N^vo%QPI#bWtw^7B`<*K)o2UYQP4 zwxrzZYj2gG+V$oXnF+?RIS;O7RszhkF5tI|k{z9FbGjyjk%Quk0RjDhobDM)Y;|({ zDyGk^F|#u(S<$pgg%VGLblfY0v-g1!G-aGGVE{mcHN!AYM$c=NRK=5(R?wOLQ#1=ZrQ0gcm|;4#wsRkqcgqh%$lK$dsvnNd^kn$vz_j-dP1413l~X9*n~$8tb!V0 zLnmy-)H=I)26Weq?x2bfh0t*W=3qZ;aL8_)ypa*M?tvxPGFE;B9#o}}DVJKd_AV|O zid8*<8~w<$3z3xczO-exEK8hB3{&nI(}Hb{lqMDjBZPQCJY9QAfj}$kX8?hFka7TN zQ^!vWN9f-2hY&Z~U)F(O@u?I$yDQfwdZZ-R-WB98CaVpCNGm)g_uML;I;$}se_j8Y zqSH;+rS!3>y3Ou(AtZEbC$15w7DMho=A-5zGQFKG2ZH zEv?>0#{R@pD6)9@K}4xGblBBiu8_N_&R)&(OtZq{XeB%vu@73OR3zz|Ap-p>-0 z8&?*JuS(6|={F=?Y}t&f7Ncq8xw%y?ueWHw@99hc?r3$kO&)}YBwGO>3!=Mv&U0K`1i4>k7W;Br$d%Wc5k(kI?&0?XV} z)n^#i>pGe+L@`gq=it!=a#Zz{@>Lh~DUod_w;hiQ78GWueWeB_N}5f0y~MIEWf(o~ z%MG)l(rG@oqQ!lVpaDP<%=5e!B*;+<5+unl=x%RhVhwU8F$S4i+5*W=T06-|EKPxA znw;`1^7f)23ri_aN06$gf|`k^wF$2&nV2AXh*#3ukA0 zK4xY&H#a6Xb|yPVb7odvUS4JvHfA<9MhFL^lZUOdkvpTU6Ztuqs<=xrY6iF8xR=6<^-vY^HBY-|KNOKggApw%+AE+ z#U5!fAlXZ$e5Q6LmZp4vNKP|$E;f)c3nROc5f>we5jO{;5gQK+BPWX~H!l~YfRl^u zA3f5xPR>TQCZHER5Y0@M5G5?eoE+RnM(m7SrW~w{94uU{j6B8=b(}mr96UTAV>4DG zu7Bhe9W5a}&dBE9?Rn8-3ejW4$-x2Q;O2w~va>UCfXuiVc}+oFjJ!N-MjXb*W*{CO z6EYH06Fvz$N3ap3$t=M}<{)M_kg+`($%||Ggq5U$WNb_w2qq(WaXcTyc8CX! zUV0rw^baCFQAd!Gvz?=wot+Jk>|asDFa7i{ze`y}KQ$5;liGfLIFY0)OJ2NofAKhV~ymHw(}UZb$$$BMTQJ z8}P%%GX81`=KtABf6D%Cc!9wElLZ;GUdVq9 qfdVA|IsW5;|9Id(9{7(3{^NoFc;Nqk9{8_^D3C2=rsf8DMEYM1C@<6i literal 0 HcmV?d00001 diff --git a/docs/_static/nectarcam_logo_dark.webp b/docs/_static/nectarcam_logo_dark.webp new file mode 100644 index 0000000000000000000000000000000000000000..340c0ed1d7295ca51ce4bc769d2595ade6309a45 GIT binary patch literal 81318 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�r1!_ZA z2)?a~2tdIB?dVw$+(p34U_0=S4^i5LZ(i3r$w{(BQGBJNS9l)fmxAc-TGf21X%i0A zB3mVt?9r)7RLAO(g}WN!VRT}AKElYS_T%78t*sdf4?8?dl|7z*#X$t16_Pybx-87S zqkiDjoTC}+2rru$kRw~AYLz2>f%YE-=fkD=5M307J!3>YXGOg~ejyQn`UY^Ny+-zC z-s_RA9-OHX>t&o>#)H1rDXWdd8EQEXy&!h&m}t03!|^D1z&qZ_Us1wYXV&x^Jo4AI zM3{aR8YkU@z0Sx6jJNEsQ+-5iHY6WHtLrV3d?G#tAc{EG9t??!TBYi;H_b>aDZ%$6jLGD(glH&@JdX=z zD_I0&1hf5T!H63)3 zb(=w@hY63Z9W1hPc&$C)Ei$w?bhv>Gr7q>DVJ+=Z-J^*m%Fj*{5R#}n$UN#Sq9t^% zTzzOf++IrfV@pJT02XU#L$VebeCSZI@*-2s&8uWb*>D*_rNz<5QJ7YTW$Sqz#NCvd zDd#jn9L_&`*SHOCYwLBt^GEuR;PkrHp}P1Glj^B;@klH&>YIFoAdVakJl66|UF zRWe*}T+3cUr=q6G?o4IKlt)Y&=7=JpKKDPrD2;ObsqVmB`;$uzTzq`Szt2<`a{%sx)F_Wa@8u#E6x~^pH;(G4RRlam>`#)D=aab`z;C zPSgZ2Vtq=^S*{~K_7=lm-t}37713Au4A|pPEDaZM6a~7Hs>|_WktSd?>DZpe2FLmm ziQ=nd*ABwXhsg}Y#+DpDnX)4B6ZLgSXTC%Z1>aZGqCeDD+oEWxzX3$t03OD2sV_hQ zcHBls8LN1C1!)r`#PfcgejgMGk%)VwJRQYiuO-MdFJ!p4Tb88Si{$9ycs7!04Rp~C z)#Z4^d*-($dvmAS7&>ts=30C^s9YJz#zvFIY@^qjS%!e(ErK(8VP~!{=Z=;fUn4It zOd|Z0=GrxFY;u7y!-M-)J|guIn)WB_)viOuO>#R%-0$b>cF&c8p_0yg6?fmAs!qXZ zn$vX=&l7RC>D{w2Gtr5NaL;Lm`&DhYwv1h`8=UdJ3NUsFxa6dUtt7ZJJlpX$%eCb* zmP3~>S6E&FEK@j*U&n5mPPoz@T)}Pte!7>o?c#>>L6x6tbm9tNb0Qw0uk1CRv{Dpt zdRR2q>lcHA?6wvO`JH&X;7Om>LIJj;E5D-reHYZ?VQ~XPCYH0t+X(Hi?SZr~wYlcP ztVa_5PRSGF>;B=*qJ`=U+3qjRwAj26 ze4(_OXF36{dvcGT(gKsT<8 zhGnQqxR>nxpngN#m!6-+O&9gWftfj;Fl?45LYL@u-UJaIT};=^ly z1~l1U_Qa8suRD~GqLCdWi0dP(_l(w!sT$(2Ga_7?nONqy1PIs?m|0inf*G;j)%0$` z=Bi5nVz=CwOP5)=P@-L~xFmhQ*RWMY z=SE~@-TD|tG4MF$L8kq#%Hy6#sGpuSPX&iQ%@*C#9CxE41(W&a6p6N^P&nR2?SNL1 z7=599op4;o|Re0pF)dWRX!;huVLyA=i&yh0ZXS^{f(T=L2`HDCwBbR~Y)MS$IxuOS2EtGF=fqbdgN7iM@8o^7 zpXhCLur(0|hhe=YWwL1?(*k2qER=uRwG4Sly@gpY6lL)Z4Y@)^l(1>bwm%%OqP|`& zkemXfCxWN6JmNh#EmW=u?IE0Q`u+t%um6P0hvPbBfq1J|toK4VV4Gu=)^(8h`J5MR zdtK)>t#w2nOUM>U?ezxRwX!i`;D_cU2z7S(RuB%Q2-6YMMdC=~ntE^`_U5R`4S?%a z`U*44In2JfW^JuBQuJAP0~mY4HJRq!U|w#}C*{#0u-=m0<##1ClWC5&>|{Z8{ukKz zeS_3L)R>lz3L>lpT~Er5KSeZ_dxRE^8&4sI#&jq=3hY&EbB}%wW`UWlriMEE_9LKlNO871v{+m^EI}wNE?Y<5l%ps#FTEX@h#@KNzGgH*L>~7-~D0)Ol^sOzu7O`Eg*p z7CMS^A^&S}^M^D>&+~ab$I+INrg+(U*T5osA-t_qtoLW5NKd3|DobTUQ%%i7CX$3K zEh4IWS;cq7Zo3Mi5%zZb7RdHcDOWF1iwu9VQm^GZd8DjqM>Op>{|%t3dKDU-RVi@b*qiT!U#*X|6dh zX>#U8zW%hqh4*F)*~vpbZ`ncE*5%n2d@&plwa3;m`l}d@?;iE7oo8A(r)a&pkK{)I zwj$=9zYk}x0JS8!6)N0Px1kIe-TSyt5y?wSR@Amtr|Q|V^A{32EcKy5O!7;x$yYub z`evW6J1mo{ls6~4nhaYyTSqI75st?p&dH_r$1ytZ9FOrNb`cV{TRdf;Xa zi-yxw;Z+)|xzt0citOusU(2E!094Pff2-!|%5*OuYq|nVPC|9~Ex2brrqqjkE7v?> zX!(|}(4^}@xSf3|St^~(0&jHmQJbwI0`vI;#YK5WI=)x7@q0@nCz6y=OpQT$-S6mI zC48$gGF6llC!)8QZH>Npj6VC}?nk{L(li?sVSX&>GIf)Z(RVNAQS?q%)I zzziA3{jMc)&V`gK!JLIHRpLnj)`M28n7e3)1){9)utr+g5*Z$Ejfoc7Dci5$V3evR z``8-re|BN(NhQ?3)U6S$XKNeZ*nqS|k~)$U;-_{yMZYt(g81oj_fik1eeY#CmxCJT8-2L z$y@7vBZ_=4>bG8I-U)xHC{=9s{yfurZ(wb^u*I-C(>|`;7CDPwctOUoJ_v^|AMN;Y z8gwu(TzGivOQs3NW4kTz4AQ)S1TpKfQj0ETo9wo{;y#>oAGrZ&#V}c1Zy6;~2JE~e+o=pu_@?@HIS zF6r}_M??9aS$vCYdQWEA|ER#PynqccT$xl~?&erC;d(H!Z07j$gPXQ|cWT+M!F|j zy?o&J(UjXyayc9Wg(#RxJjV3Q@>Pc!ttHOfkevgU&(BjX%O;*PG*s2n=ts7KSR~ED zRU5rrOP>x_)$R;~lOK~S6j;4Ir(JuoI!i3hDH#byATkUUopv+3===0PgFMeiqpfub z9iojAvaEqQQ@drXju;ZYO)dDV9cB&(;ZU)E>z??<{;)54ca^8q=ieMsqs#Lz_Dh#l7{C@;; z*#;tS=gnQmlBMs6 zD|er*eSYQSnEDPA%_Lem+F0|4EmBp$6y!6yY-_lL@KODc=-6~IwP(9SJo)8=qib)y zhMs(&2hAG^+o-5fwLq2&!jv1pM20z&J`$#?rXgw(syk34DCqX_LM7`yI5&X;zM{YH zt}7kw>fDKa18Ay*^)DM!hl?Lw;lyUloPW>V>x=J_rqqHqR(>NUA7wY zZBef;06V$8SK7V-SiJ3JICG8o)KJ!h^_qT!AAb>P5q!e3TOGE?uV&jsvGmT#uUHx} z*F>}}yqGvX&PX8#x<~3sz)8Y`Y^`OtR9x&c>-h4RDECJP zDg25X0IsUPOc0RZH8wfo{%fQD`+=WKC(UA-9u4jNVhI!-j6NS>F>1=lJgY+VFw{k@ zV^-IaOfuQuRqAxw@aJ14_C1WR=ZbaqeqVY|(KRimneX(qNfYba$^`MxuuhVzDG^$f zp8_tW?sKw4!(v4+OC0r!ypBt9zn(jdb0ajQ=g{TMwP3j zPz)W!>o&0ABTW)6Z-vIuo_(Oko52E2(|PsFG}McajP+(ugZH?(`OkoQPs_NByla_O znh_0$dE1vbWEY>K=49{ORpRcOLi?GTcICO5w+eEnsR}6QR+@Y`5R9UUvuVNuL|A6GtcfhL~#OTh2mI(=g?OP4XlVxJ{WGhgT&F~SHtZNcwUnYnIA13F)CF-=v3 zCX7=@`|2eB(esg^rH6z0&r6<*RfJv1dEP;L$al4gdUc)2fr^_(u%GL@_^VHB{Rwhx z#R3}eVWt+TgffE034`W=ZQ z2Y{3SfZe_ChenvnJtRId`?%))a?`o)VAX(_3`{dAYFx}vbtYs_)Mm8gOl!KhprWPU zhZgaQ7FS#xKnq2-?CjqF_V{}_=SJT;`~#1d&K0wbOH$;qIOcuNnTb| z)O6LDnJ^u#OR+h!HJs?`o;04~pajB}efAB%Z>@LY<>%#tNVL^u3Ibp704UH4xe{Kc z2bNU>j?kG`4hywj;6$HZv_H6}9!Y!l<{SE4CEE?a`aM>=+H*|F)T;Irn6bjx;~9x3 za}J7QI7?n>s1 z9UyMCi(hq|^NSqb$l+X{q`{f$izuZTOXS9I(yx@vrBa}Tq3U(b$W8!Ef{1(K$1UE`+@YVxf2U*)gWPn}=7T+%H~Kjm!+-^GkZX^J-V-5}t#jm&M&P z8PLov-dRT7l@0f8TX*m0`f4}04&DF+uNQ~eO0d-^*Ihlm-3EP97x2*7a;U>QaD?r2 ze$enJR98hAf*#Hb0m8p53Vbk4DCkd<{Hz zmbqRQ!72ZX?&8&*)H}Q#N+bF{?$TO`<(|L>ql79-r(7TITzE>jF6etMAp^!*eVL2e zgEa$tel9cU+gF|ZXuc=#%sPj$Y_?^>^1 zop-rfA3{AFCW@reABX`(Jx&fUeHB=}7CQ*OGS&D$CV1ATw~vQI(TYmI_)Nc--JZ#) z04HnPPiuMH(ft82MqqV$RQgnk$hj04y;cAA(N*o~#&t*C<%YmDu{BW<)^$-*{bmBT z-(L5|2Lj;Ly01Y)sUfG}WnC1=DMi&DI?hy7R5WX1ShM29~aT zRc($VcPpL_xF{RT%xt{yC{7l|vyjQUn8)(GSFAizXy!M?e%gcz8PLq&LawS;RrSpL_N8#|@yTi1uVtJD4-z7e`JK_)%d8 z#I7WlK8_iaw!2te4uD#31o+*I>!A|7D2M<6aVd8PGq5ehna&(y1+|x8*lB2Cpo3aS zFz5=X@TfS*Lad?BJe?q#o~l}4Pg}5v1%s3%ow&QGJInzFaWo+%VX!w!gU%&T_7(&VQ=$ z-*O|gJRBh08W05B#R&|NbA{MDGyc`x0{nMh2Nx&1-vBJY+z>km48?{(jmG=;P`4>| ze{X_N(he#uZR%DoDV1>2(|$7TMAkLg+W4sK#-sakFWp)A}9m~|J7g3 z35tq1GrND+=T?pdN{*QTKR<+DNB}4x%*O}hhgb>$MJynKKoMb(8Na!?B}7;lCC36R zDi3#pnW0<;g_&7FxZNP;4h(d+rWKWbp(w!s;^O)9@`at5vn7gGg5f#T-o^dTS}iCH zqUmgQYdKya5Qv{oL>PrYfKQlD;7<-6h!X-8TDPKpXG1d3-5OpLr8~-kX17s?>iQdz zsH_vj%o*;a1&7;7F#MfCc^jvH*!>w4fok^nGx9Ydj(<{iP`cl7Cu#=%LmtA+6=K2g zXC-RWczY`d>i-cH6MwKl{~NnoitzGV@bQCzW+Fl&D0>NmfaYdqB0w_%Fv?{-79c); zk-z#Q;FivAW=;@kD-;Bjrl=73o$E=*_S-b Indices and tables diff --git a/pyproject.toml b/pyproject.toml index e5c76f24..f98c6442 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ dev = [ docs = [ "sphinx", + "sphinx-autodoc-typehints", "sphinx-automodapi", "pydata_sphinx_theme", "numpydoc", diff --git a/src/nectarchain/data/container/eventSource.py b/src/nectarchain/data/container/eventSource.py index e8f84414..bf55c8e5 100644 --- a/src/nectarchain/data/container/eventSource.py +++ b/src/nectarchain/data/container/eventSource.py @@ -192,27 +192,29 @@ class LightNectarCAMEventSource(NectarCAMEventSource): LightNectarCAMEventSource is a subclass of NectarCAMEventSource that provides a generator for iterating over NectarCAM events. - This implementation of the NectarCAMEventSource is mucvh lighter than the one within - ctapipe_io_nectarcam, only the fileds interesting - for nectachain are kept. - - Attributes: - input_url (str): The input URL of the data source. - max_events (int): The maximum number of events to process. - tel_id (int): The telescope ID. - nectarcam_service (NectarCAMService): The service container for NectarCAM. - trigger_information (bool): Flag indicating whether to fill trigger information - in the event container. - obs_ids (list): The list of observation IDs. - multi_file (MultiFileReader): The multi-file reader for reading the data source. - r0_r1_calibrator (R0R1Calibrator): The calibrator for R0 to R1 conversion. - calibrate_flatfields_and_pedestals (bool): Flag indicating whether to calibrate - flatfield and pedestal events. - - Methods: - _generator: The generator function that yields NectarCAMDataContainer objects - representing each event. - + This implementation of the NectarCAMEventSource is much lighter than the one within + ctapipe_io_nectarcam, only the fields interesting for nectarchain are kept. + + Parameters + ---------- + input_url : str + The input URL of the data source. + max_events : int + The maximum number of events to process. + tel_id : int + The telescope ID. + nectarcam_service : NectarCAMService + The service container for NectarCAM. + trigger_information : bool + Flag indicating whether to fill trigger information in the event container. + obs_ids : list + The list of observation IDs. + multi_file : MultiFileReader + The multi-file reader for reading the data source. + r0_r1_calibrator : R0R1Calibrator + The calibrator for R0 to R1 conversion. + calibrate_flatfields_and_pedestals : bool + Flag indicating whether to calibrate flatfield and pedestal events. """ def _generator(self): @@ -220,12 +222,15 @@ def _generator(self): The generator function that yields NectarCAMDataContainer objects representing each event. - Yields: - NectarCAMDataContainer: The NectarCAMDataContainer object representing - each event. + Yields + ------ + NectarCAMDataContainer : + The NectarCAMDataContainer object representing each event. + + Raises + ------ + None - Raises: - None """ # container for NectarCAM data array_event = NectarCAMDataContainer() diff --git a/src/nectarchain/data/management.py b/src/nectarchain/data/management.py index e438c292..cd9f0dcb 100644 --- a/src/nectarchain/data/management.py +++ b/src/nectarchain/data/management.py @@ -33,14 +33,19 @@ class DataManagement: @staticmethod def findrun(run_number: int, search_on_GRID=True) -> Tuple[Path, List[Path]]: - """method to find in NECTARCAMDATA the list of `*.fits.fz` files associated to + """method to find in NECTARCAMDATA the list of ``*.fits.fz`` files associated to run_number - Args: - run_number (int): the run number + Parameters + ---------- + run_number: int + the run number + + Returns + ------- + (PosixPath,list): + the path list of `*fits.fz` files - Returns: - (PosixPath,list): the path list of `*fits.fz` files """ basepath = f"{os.environ['NECTARCAMDATA']}/runs/" list = glob.glob( @@ -77,10 +82,12 @@ def findrun(run_number: int, search_on_GRID=True) -> Tuple[Path, List[Path]]: @staticmethod def getRunFromDIRAC(lfns: list): - """method do get run files from GRID-EGI from input lfns + """Method to get run files from the EGI grid from input lfns - Args: - lfns (list): list of lfns path + Parameters + ---------- + lfns: list + list of lfns path """ with KeepLoggingUnchanged(): from DIRAC.Interfaces.API.Dirac import Dirac @@ -111,16 +118,28 @@ def get_GRID_location( """ Method to get run location on GRID from Elog (work in progress!) - Args: - run_number (int): run number - output_lfns (bool, optional): if True, return lfns path of fits.gz files, else return parent directory of run location. Defaults to True. - basepath (str) : the path on GRID where nectarCAM data are stored. Default to /vo.cta.in2p3.fr/nectarcam/. - fromElog (bool,optional): To force to use the method which read the Elog. Default to False. To use the method with DIRAC API. - username (_type_, optional): username for Elog login. Defaults to None. - password (_type_, optional): password for Elog login. Defaults to None. + Parameters + ---------- + run_number: int + Run number + output_lfns: bool, optional + If True, return lfns path of fits.gz files, else return parent directory + of run location. Defaults to True. + basepath: str + The path on GRID where nectarCAM data are stored. Default to + ``/vo.cta.in2p3.fr/nectarcam/``. + fromElog: bool, optional + To force to use the method which read the Elog. Default to False. To use + the method with DIRAC API. + username: _type_, optional + username for Elog login. Defaults to None. + password: _type_, optional + password for Elog login. Defaults to None. + + Returns + ------- + __get_GRID_location_ELog or __get_GRID_location_DIRAC - Returns: - _type_: _description_ """ if fromElog: return __class__.__get_GRID_location_ELog( diff --git a/src/nectarchain/makers/component/PedestalComponent.py b/src/nectarchain/makers/component/PedestalComponent.py index d01bad7e..7489342d 100644 --- a/src/nectarchain/makers/component/PedestalComponent.py +++ b/src/nectarchain/makers/component/PedestalComponent.py @@ -4,10 +4,10 @@ import numpy as np import numpy.ma as ma from ctapipe.containers import EventType +from ctapipe.core.traits import Dict, Float, Integer, Unicode +from ctapipe_io_nectarcam.constants import HIGH_GAIN, LOW_GAIN, N_GAINS from ctapipe_io_nectarcam.containers import NectarCAMDataContainer -from ctapipe_io_nectarcam.constants import N_GAINS, HIGH_GAIN, LOW_GAIN -from ctapipe.core.traits import Integer, Unicode, Float, Dict from ...data.container import NectarCAMPedestalContainer, PedestalFlagBits from ...utils import ComponentUtils from .chargesComponent import ChargesComponent @@ -28,7 +28,8 @@ class PedestalEstimationComponent(NectarCAMComponent): Component that computes calibration pedestal coefficients from raw data. Waveforms can be filtered based on time, standard deviation of the waveforms or charge distribution within the sample. - Use the `events_per_slice' parameter of `NectarCAMComponent' to reduce memory load. + Use the ``events_per_slice`` parameter of ``NectarCAMComponent`` to reduce + memory load. Parameters ---------- @@ -47,8 +48,8 @@ class PedestalEstimationComponent(NectarCAMComponent): Threshold in charge distribution (number of sigmas above mean) beyond which a waveform is excluded from pedestal computation. charge_sigma_low_thr : float - Threshold in charge distribution (number of sigmas below mean) beyond which a waveform - is excluded from pedestal computation. + Threshold in charge distribution (number of sigmas below mean) beyond which a + waveform is excluded from pedestal computation. pixel_mask_nevents_min : int Minimum number of events below which the pixel is flagged as bad pixel_mask_mean_min : float @@ -56,9 +57,12 @@ class PedestalEstimationComponent(NectarCAMComponent): pixel_mask_mean_max : float Maximum value of pedestal mean above which the pixel is flagged as bad pixel_mask_std_sample_min : float - Minimum value of pedestal standard deviation for all samples below which the pixel is flagged as bad + Minimum value of pedestal standard deviation for all samples below which the + pixel is flagged as bad pixel_mask_std_pixel_max : float - Maximum value of pedestal standard deviation in a pixel above which the pixel is flagged as bad + Maximum value of pedestal standard deviation in a pixel above which the pixel is + flagged as bad + """ ucts_tmin = Integer( @@ -75,9 +79,9 @@ class PedestalEstimationComponent(NectarCAMComponent): filter_method = Unicode( None, - help="""The waveforms filter method to be used. -Implemented methods: WaveformsStdFilter (standard deviation of waveforms), - ChargeDistributionFilter (charge distribution).""", + help="The waveforms filter method to be used. Implemented methods: " + "WaveformsStdFilter (standard deviation of waveforms), " + "ChargeDistributionFilter (charge distribution).", read_only=False, allow_none=True, ).tag(config=True) @@ -117,14 +121,18 @@ class PedestalEstimationComponent(NectarCAMComponent): pixel_mask_std_sample_min = Float( 0.5, - # for run 3938 in dark room typical standard deviations in working pixel HG are 2.7, LT 2024 July 3 - help="Minimum value of pedestal standard deviation for all samples below which the pixel is flagged as bad", + # for run 3938 in dark room typical standard deviations in working pixel HG + # are 2.7, LT 2024 July 3 + help="Minimum value of pedestal standard deviation for all samples below " + "which the pixel is flagged as bad", ).tag(config=True) pixel_mask_std_pixel_max = Float( 4, - # for run 3938 in dark room typical standard deviations in working pixel HG are 0.25, LT 2024 July 3 - help="Maximum value of pedestal standard deviation in a pixel above which the pixel is flagged as bad", + # for run 3938 in dark room typical standard deviations in working pixel HG + # are 0.25, LT 2024 July 3 + help="Maximum value of pedestal standard deviation in a pixel above which the " + "pixel is flagged as bad", ).tag(config=True) # I do not understand why but the ChargesComponents traits are not loaded @@ -148,7 +156,7 @@ def __init__(self, subarray, config=None, parent=None, *args, **kwargs): Component that computes calibration pedestal coefficients from raw data. Waveforms can be filtered based on time, standard deviation of the waveforms or charge distribution within the sample. - Use the `events_per_slice' parameter of `NectarCAMComponent' to + Use the ``events_per_slice`` parameter of ``NectarCAMComponent`` to reduce memory load. Parameters @@ -248,10 +256,11 @@ def flag_bad_pixels(self, ped_stats, nevents): Parameters ---------- ped_stats : `dict` - A dictionary containing 3D (n_chan,n_pixels,n_samples) arrays for each statistic + A dictionary containing 3D (n_chan,n_pixels,n_samples) arrays for each + statistic nevents : `np.ndarray` - An array that contains the numbber of events used to calculate the statistics - for each pixel + An array that contains the numbber of events used to calculate the + statistics for each pixel Returns ------- @@ -265,7 +274,8 @@ def flag_bad_pixels(self, ped_stats, nevents): # Flag on number of events log.info( - f"Flag pixels with number of events below the acceptable minimum value {self.pixel_mask_nevents_min}" + f"Flag pixels with number of events below the acceptable minimum value " + f"{self.pixel_mask_nevents_min}" ) flag_nevents = np.int8(nevents < self.pixel_mask_nevents_min) # Bitwise OR @@ -274,7 +284,8 @@ def flag_bad_pixels(self, ped_stats, nevents): # Flag on mean pedestal value # Average over all samples for each channel/pixel log.info( - f"Flag pixels with mean pedestal outside acceptable range {self.pixel_mask_mean_min}-{self.pixel_mask_mean_max}" + f"Flag pixels with mean pedestal outside acceptable range " + f"{self.pixel_mask_mean_min}-{self.pixel_mask_mean_max}" ) ped_mean = np.mean(ped_stats["mean"], axis=2) # Apply thresholds @@ -289,7 +300,9 @@ def flag_bad_pixels(self, ped_stats, nevents): # Flag on standard deviation per sample # all samples in channel/pixel below threshold log.info( - f"Flag pixels with pedestal standard deviation for all samples in channel/pixel below the minimum acceptable value {self.pixel_mask_std_sample_min}" + f"Flag pixels with pedestal standard deviation for all samples in " + f"channel/pixel below the minimum acceptable value " + f"{self.pixel_mask_std_sample_min}" ) flag_sample_std = np.int8( np.all(ped_stats["std"] < self.pixel_mask_std_sample_min, axis=2) @@ -300,7 +313,8 @@ def flag_bad_pixels(self, ped_stats, nevents): # Flag on standard deviation per pixel # Standard deviation of pedestal in channel/pixel above threshold log.info( - f"Flag pixels with pedestal standard deviation in a chennel/pixel above the maximum acceptable value {self.pixel_mask_std_pixel_max}" + f"Flag pixels with pedestal standard deviation in a chennel/pixel above " + f"the maximum acceptable value {self.pixel_mask_std_pixel_max}" ) flag_pixel_std = np.int8( np.std(ped_stats["mean"], axis=2) > self.pixel_mask_std_pixel_max diff --git a/src/nectarchain/makers/component/chargesComponent.py b/src/nectarchain/makers/component/chargesComponent.py index c699a789..0b997499 100644 --- a/src/nectarchain/makers/component/chargesComponent.py +++ b/src/nectarchain/makers/component/chargesComponent.py @@ -1,10 +1,5 @@ -import logging - -logging.basicConfig(format="%(asctime)s %(name)s %(levelname)s %(message)s") -log = logging.getLogger(__name__) -log.handlers = logging.getLogger("__main__").handlers - import copy +import logging import time from argparse import ArgumentError @@ -12,15 +7,15 @@ import numpy.ma as ma from ctapipe.containers import EventType from ctapipe.core.traits import Dict, Unicode -from ctapipe.image.extractor import ( +from ctapipe.image.extractor import FixedWindowSum # noqa: F401 +from ctapipe.image.extractor import FullWaveformSum # noqa: F401 +from ctapipe.image.extractor import GlobalPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import LocalPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import NeighborPeakWindowSum # noqa: F401 +from ctapipe.image.extractor import SlidingWindowMaxSum # noqa: F401 +from ctapipe.image.extractor import TwoPassWindowSum # noqa: F401 +from ctapipe.image.extractor import ( # noqa: F401 BaselineSubtractedNeighborPeakWindowSum, - FixedWindowSum, - FullWaveformSum, - GlobalPeakWindowSum, - LocalPeakWindowSum, - NeighborPeakWindowSum, - SlidingWindowMaxSum, - TwoPassWindowSum, ) from ctapipe.instrument import SubarrayDescription from ctapipe_io_nectarcam import constants @@ -36,6 +31,10 @@ from ..extractor.utils import CtapipeExtractor from .core import ArrayDataComponent +logging.basicConfig(format="%(asctime)s %(name)s %(levelname)s %(message)s") +log = logging.getLogger(__name__) +log.handlers = logging.getLogger("__main__").handlers + __all__ = ["ChargesComponent"] list_ctapipe_charge_extractor = [ @@ -62,14 +61,17 @@ cache=True, ) def make_histo(charge, all_range, mask_broken_pix, _mask, hist_ma_data): - """compute histogram of charge with numba + """ + Compute histogram of charge with numba - Args: + Parameters + ---------- charge (np.ndarray(pixels,nevents)): charge all_range (np.ndarray(nbins)): charge range mask_broken_pix (np.ndarray(pixels)): mask on broxen pixels _mask (np.ndarray(pixels,nbins)): mask hist_ma_data (np.ndarray(pixels,nbins)): histogram + """ # print(f"charge.shape = {charge.shape[0]}") # print(f"_mask.shape = {_mask.shape[0]}") @@ -139,12 +141,15 @@ def _init_trigger_type(self, trigger_type: EventType, **kwargs): """ Initializes the ChargesMaker based on the trigger type. - Args: + Parameters + ---------- trigger_type (EventType): The type of trigger. - **kwargs: Additional keyword arguments. + kwargs: Additional keyword arguments. - Returns: + Returns + ------- None + """ super()._init_trigger_type(trigger_type, **kwargs) name = __class__._get_name_trigger(trigger_type) @@ -208,26 +213,38 @@ def _get_extractor_kwargs_from_method_and_kwargs(method: str, kwargs: dict): @staticmethod def _get_imageExtractor(method: str, subarray: SubarrayDescription, **kwargs): """ - Create an instance of a charge extraction method based on the provided method name and subarray description. - Args: - method (str): The name of the charge extraction method. - subarray (SubarrayDescription): The description of the subarray. - **kwargs (dict): Additional keyword arguments for the charge extraction method. - Returns: - imageExtractor: An instance of the charge extraction method specified by `method` with the provided subarray description and keyword arguments. + Create an instance of a charge extraction method based on the provided method + name and subarray description. + + Parameters + ---------- + method : str + The name of the charge extraction method. + subarray : SubarrayDescription + The description of the subarray. + ``**kwargs`` : dict + Additional keyword arguments for the charge extraction method. + + Returns + ------- + imageExtractor: + An instance of the charge extraction method specified by `method` with the + provided subarray description and keyword arguments. """ if not ( method in list_ctapipe_charge_extractor or method in list_nectarchain_charge_extractor ): raise ArgumentError( - f"method must be in {list_ctapipe_charge_extractor} or {list_nectarchain_charge_extractor}" + f"method must be in {list_ctapipe_charge_extractor} or " + f"{list_nectarchain_charge_extractor}" ) extractor_kwargs = __class__._get_extractor_kwargs_from_method_and_kwargs( method=method, kwargs=kwargs ) log.debug( - f"Extracting charges with method {method} and extractor_kwargs {extractor_kwargs}" + f"Extracting charges with method {method} and extractor_kwargs " + f"{extractor_kwargs}" ) imageExtractor = eval(method)(subarray, **extractor_kwargs) return imageExtractor @@ -236,13 +253,17 @@ def finish(self, *args, **kwargs): """ Create an output container for the specified trigger type and method. - Args: + Parameters + ---------- trigger_type (EventType): The type of trigger. method (str): The name of the charge extraction method. - *args: Additional positional arguments. - **kwargs: Additional keyword arguments. - Returns: + args: Additional positional arguments. + kwargs: Additional keyword arguments. + + Returns + ------- list: A list of ChargesContainer objects. + """ output = ChargesContainers() for i, trigger in enumerate(self.trigger_list): @@ -278,14 +299,23 @@ def sort(chargesContainer: ChargesContainer, method: str = "event_id"): """ Sorts the charges in a ChargesContainer object based on the specified method. - Args: - chargesContainer (ChargesContainer): The ChargesContainer object to be sorted. - method (str, optional): The sorting method. Defaults to 'event_id'. - Returns: - ChargesContainer: A new ChargesContainer object with the charges sorted based on the specified method. - - Raises: - ArgumentError: If the specified method is not valid. + Parameters + ---------- + chargesContainer : ChargesContainer + The ChargesContainer object to be sorted. + method : str, optional + The sorting method. Defaults to 'event_id'. + + Returns + ------- + ChargesContainer: + A new ChargesContainer object with the charges sorted based on the specified + method. + + Raises + ------ + ArgumentError: + If the specified method is not valid. """ output = ChargesContainer( run_number=chargesContainer.run_number, @@ -317,13 +347,21 @@ def sort(chargesContainer: ChargesContainer, method: str = "event_id"): @staticmethod def select_charges_hg(chargesContainer: ChargesContainer, pixel_id: np.ndarray): """ - Selects the charges from the ChargesContainer object for the given pixel_id and returns the result transposed. - - Args: - chargesContainer (ChargesContainer): The ChargesContainer object. - pixel_id (np.ndarray): An array of pixel IDs. - Returns: - np.ndarray: The selected charges from the ChargesContainer object for the given pixel_id, transposed. + Selects the charges from the ChargesContainer object for the given pixel_id and + returns the result transposed. + + Parameters + ---------- + chargesContainer : ChargesContainer + The ChargesContainer object. + pixel_id : np.ndarray + An array of pixel IDs. + + Returns + ------- + res : np.ndarray + The selected charges from the ChargesContainer object for the given + ``pixel_id``, transposed. """ res = __class__.select_container_array_field( container=chargesContainer, pixel_id=pixel_id, field="charges_hg" @@ -334,13 +372,21 @@ def select_charges_hg(chargesContainer: ChargesContainer, pixel_id: np.ndarray): @staticmethod def select_charges_lg(chargesContainer: ChargesContainer, pixel_id: np.ndarray): """ - Selects the charges from the ChargesContainer object for the given pixel_id and returns the result transposed. - - Args: - chargesContainer (ChargesContainer): The ChargesContainer object. - pixel_id (np.ndarray): An array of pixel IDs. - Returns: - np.ndarray: The selected charges from the ChargesContainer object for the given pixel_id, transposed. + Selects the charges from the ChargesContainer object for the given pixel_id and + returns the result transposed. + + Parameters + ---------- + chargesContainer : ChargesContainer + The ChargesContainer object. + pixel_id : np.ndarray + An array of pixel IDs. + + Returns + ------- + res : np.ndarray + The selected charges from the ChargesContainer object for the given + ``pixel_id``, transposed. """ res = __class__.select_container_array_field( container=chargesContainer, pixel_id=pixel_id, field="charges_lg" @@ -350,12 +396,18 @@ def select_charges_lg(chargesContainer: ChargesContainer, pixel_id: np.ndarray): def charges_hg(self, trigger: EventType): """ - Returns the charges for a specific trigger type as a NumPy array of unsigned 16-bit integers. - - Args: - trigger (EventType): The specific trigger type. - Returns: - np.ndarray: The charges for the specific trigger type. + Returns the charges for a specific trigger type as a NumPy array of unsigned + 16-bit integers. + + Parameters + ---------- + trigger : EventType + The specific trigger type. + + Returns + ------- + : np.ndarray + The charges for the specific trigger type. """ return np.array( self.__charges_hg[__class__._get_name_trigger(trigger)], @@ -364,12 +416,18 @@ def charges_hg(self, trigger: EventType): def charges_lg(self, trigger: EventType): """ - Returns the charges for a specific trigger type as a NumPy array of unsigned 16-bit integers. - - Args: - trigger (EventType): The specific trigger type. - Returns: - np.ndarray: The charges for the specific trigger type. + Returns the charges for a specific trigger type as a NumPy array of unsigned + 16-bit integers. + + Parameters + ---------- + trigger : EventType + The specific trigger type. + + Returns + ------- + : np.ndarray + The charges for the specific trigger type. """ return np.array( self.__charges_lg[__class__._get_name_trigger(trigger)], @@ -378,12 +436,18 @@ def charges_lg(self, trigger: EventType): def peak_hg(self, trigger: EventType): """ - Returns the peak charges for a specific trigger type as a NumPy array of unsigned 16-bit integers. - - Args: - trigger (EventType): The specific trigger type. - Returns: - np.ndarray: The peak charges for the specific trigger type. + Returns the peak charges for a specific trigger type as a NumPy array of + unsigned 16-bit integers. + + Parameters + ---------- + trigger : EventType + The specific trigger type. + + Returns + ------- + : np.ndarray + The peak charges for the specific trigger type. """ return np.array( self.__peak_hg[__class__._get_name_trigger(trigger)], @@ -392,12 +456,18 @@ def peak_hg(self, trigger: EventType): def peak_lg(self, trigger: EventType): """ - Returns the peak charges for a specific trigger type as a NumPy array of unsigned 16-bit integers. - - Args: - trigger (EventType): The specific trigger type. - Returns: - np.ndarray: The peak charges for the specific trigger type. + Returns the peak charges for a specific trigger type as a NumPy array of + unsigned 16-bit integers. + + Parameters + ---------- + trigger : EventType + The specific trigger type. + + Returns + ------- + : np.ndarray + The peak charges for the specific trigger type. """ return np.array( self.__peak_lg[__class__._get_name_trigger(trigger)], @@ -423,14 +493,22 @@ def create_from_waveforms( **kwargs, ) -> ChargesContainer: """ - Create a ChargesContainer object from waveforms using the specified charge extraction method. - - Args: - waveformsContainer (WaveformsContainer): The waveforms container object. - method (str, optional): The charge extraction method to use (default is "FullWaveformSum"). - **kwargs: Additional keyword arguments to pass to the charge extraction method. - Returns: - ChargesContainer: The charges container object containing the computed charges and peak times. + Create a ChargesContainer object from waveforms using the specified charge + extraction method. + + Parameters + ---------- + waveformsContainer : WaveformsContainer + The waveforms container object. + method : str, optional + The charge extraction method to use (default is ``FullWaveformSum``). + kwargs + Additional keyword arguments to pass to the charge extraction method. + + Returns + ------- + chargesContainer : ChargesContainer + The charges container object containing the computed charges and peak times. """ chargesContainer = ChargesContainer() for field in waveformsContainer.keys(): @@ -471,18 +549,32 @@ def compute_charges( """ Compute charge from waveforms. - Args: - waveformContainer (WaveformsContainer): The waveforms container object. - channel (int): The channel to compute charges for. - method (str, optional): The charge extraction method to use (default is "FullWaveformSum"). - **kwargs: Additional keyword arguments to pass to the charge extraction method. - Raises: - ArgumentError: If the extraction method is unknown. - ArgumentError: If the channel is unknown. - Returns: - tuple: A tuple containing the computed charges and peak times. + Parameters + ---------- + waveformContainer : WaveformsContainer + The waveforms container object. + channel : int + The channel to compute charges for. + method : str, optional + The charge extraction method to use (default is ``FullWaveformSum``). + kwargs + Additional keyword arguments to pass to the charge extraction method. + + Raises + ------ + ArgumentError + If the extraction method is unknown. + ArgumentError + If the channel is unknown. + + Returns + ------- + : tuple + A tuple containing the computed charges and peak times. """ - # import is here for fix issue with pytest (TypeError : inference is not possible with python <3.9 (Numba conflict bc there is no inference...)) + # import is here for fix issue with pytest + # (TypeError : inference is not possible with python <3.9 (Numba conflict bc + # there is no inference...)) from ..extractor.utils import CtapipeExtractor if tel_id is None: @@ -537,13 +629,22 @@ def histo_hg( """ Computes histogram of high gain charges from a ChargesContainer object. - Args: - chargesContainer (ChargesContainer): A ChargesContainer object that holds information about charges from a specific run. - n_bins (int, optional): The number of bins in the charge histogram. Defaults to 1000. - autoscale (bool, optional): Whether to automatically detect the number of bins based on the pixel data. Defaults to True. - - Returns: - ma.masked_array: A masked array representing the charge histogram, where each row corresponds to an event and each column corresponds to a bin in the histogram. + Parameters + ---------- + chargesContainer : ChargesContainer + A ChargesContainer object that holds information about charges from a + specific run. + n_bins : int, optional + The number of bins in the charge histogram. Defaults to 1000. + autoscale : bool, optional + Whether to automatically detect the number of bins based on the pixel data. + Defaults to True. + + Returns + ------- + : ma.masked_array + A masked array representing the charge histogram, where each row corresponds + to an event and each column corresponds to a bin in the histogram. """ return __class__._histo( chargesContainer=chargesContainer, @@ -559,13 +660,22 @@ def histo_lg( """ Computes histogram of low gain charges from a ChargesContainer object. - Args: - chargesContainer (ChargesContainer): A ChargesContainer object that holds information about charges from a specific run. - n_bins (int, optional): The number of bins in the charge histogram. Defaults to 1000. - autoscale (bool, optional): Whether to automatically detect the number of bins based on the pixel data. Defaults to True. - - Returns: - ma.masked_array: A masked array representing the charge histogram, where each row corresponds to an event and each column corresponds to a bin in the histogram. + Parameters + ---------- + chargesContainer : ChargesContainer + A ChargesContainer object that holds information about charges from a + specific run. + n_bins : int, optional + The number of bins in the charge histogram. Defaults to 1000. + autoscale : bool, optional + Whether to automatically detect the number of bins based on the pixel + data. Defaults to True. + + Returns + ------- + : ma.masked_array + A masked array representing the charge histogram, where each row corresponds + to an event and each column corresponds to a bin in the histogram. """ return __class__._histo( chargesContainer=chargesContainer, @@ -585,14 +695,25 @@ def _histo( Computes histogram of charges for a given field from a ChargesContainer object. Numba is used to compute histograms in a vectorized way. - Args: - chargesContainer (ChargesContainer): A ChargesContainer object that holds information about charges from a specific run. - field (str): The field name for which the histogram is computed. - n_bins (int, optional): The number of bins in the charge histogram. Defaults to 1000. - autoscale (bool, optional): Whether to automatically detect the number of bins based on the pixel data. Defaults to True. - - Returns: - ma.masked_array: A masked array representing the charge histogram, where each row corresponds to an event and each column corresponds to a bin in the histogram. + Parameters + ---------- + chargesContainer : ChargesContainer + A ChargesContainer object that holds information about charges from a + specific run. + field : str + The field name for which the histogram is computed. + n_bins : int, optional + The number of bins in the charge histogram. Defaults to 1000. + autoscale : bool, optional + Whether to automatically detect the number of bins based on the pixel data. + Defaults to True. + + Returns + ------- + : ma.masked_array + A masked array representing the charge histogram, where each row + corresponds to an event and each column corresponds to a bin in the + histogram. """ mask_broken_pix = np.array( (chargesContainer[field] == chargesContainer[field].mean(axis=0)).mean( @@ -601,7 +722,8 @@ def _histo( dtype=bool, ) log.debug( - f"there are {mask_broken_pix.sum()} broken pixels (charge stays at same level for each events)" + f"there are {mask_broken_pix.sum()} broken pixels (charge stays at same " + f"level for each events)" ) if autoscale: diff --git a/src/nectarchain/makers/component/spe/spe_algorithm.py b/src/nectarchain/makers/component/spe/spe_algorithm.py index c1c6607e..0be6345f 100644 --- a/src/nectarchain/makers/component/spe/spe_algorithm.py +++ b/src/nectarchain/makers/component/spe/spe_algorithm.py @@ -1,11 +1,5 @@ -import logging -import sys - -logging.basicConfig(format="%(asctime)s %(name)s %(levelname)s %(message)s") -log = logging.getLogger(__name__) -log.handlers = logging.getLogger("__main__").handlers - import copy +import logging import multiprocessing as mp import os import time @@ -17,9 +11,6 @@ import matplotlib import matplotlib.pyplot as plt import matplotlib.style as mplstyle - -mplstyle.use("fast") - import numpy as np import yaml from astropy.table import QTable @@ -37,6 +28,12 @@ from ..chargesComponent import ChargesComponent from .parameters import Parameter, Parameters +mplstyle.use("fast") + +logging.basicConfig(format="%(asctime)s %(name)s %(levelname)s %(message)s") +log = logging.getLogger(__name__) +log.handlers = logging.getLogger("__main__").handlers + __all__ = [ "SPEHHValgorithm", "SPEHHVStdalgorithm", @@ -172,14 +169,16 @@ def npixels(self): # methods def read_param_from_yaml(self, parameters_file, only_update=False) -> None: """ - Reads parameters from a YAML file and updates the internal parameters of the FlatFieldSPEMaker class. - - Args: - parameters_file (str): The name of the YAML file containing the parameters. - only_update (bool, optional): If True, only the parameters that exist in the YAML file will be updated. Default is False. - - Returns: - None + Reads parameters from a YAML file and updates the internal parameters of the + FlatFieldSPEMaker class. + + Parameters + ---------- + parameters_file : str + The name of the YAML file containing the parameters. + only_update : bool, optional + If True, only the parameters that exist in the YAML file will be updated. + Default is False. """ with open( f"{os.path.dirname(os.path.abspath(__file__))}/{parameters_file}" @@ -212,16 +211,26 @@ def _update_parameters( parameters: Parameters, charge: np.ndarray, counts: np.ndarray, **kwargs ) -> Parameters: """ - Update the parameters of the FlatFieldSPEMaker class based on the input charge and counts data. - - Args: - parameters (Parameters): An instance of the Parameters class that holds the internal parameters of the FlatFieldSPEMaker class. - charge (np.ndarray): An array of charge values. - counts (np.ndarray): An array of corresponding counts values. - **kwargs: Additional keyword arguments. - - Returns: - Parameters: The updated parameters object with the pedestal and mean values and their corresponding limits. + Update the parameters of the FlatFieldSPEMaker class based on the input charge + and counts data. + + Parameters + ---------- + parameters (Parameters): + An instance of the Parameters class that holds the internal parameters of + the FlatFieldSPEMaker class. + charge (np.ndarray): + An array of charge values. + counts (np.ndarray): + An array of corresponding counts values. + kwargs + Additional keyword arguments. + + Returns + ------- + parameters : Parameters + The updated parameters object with the pedestal and mean values and their + corresponding limits. """ try: coeff_ped, coeff_mean = __class__._get_mean_gaussian_fit( @@ -263,16 +272,24 @@ def _get_mean_gaussian_fit( """ Perform a Gaussian fit on the data to determine the pedestal and mean values. - Args: - charge (np.ndarray): An array of charge values. - counts (np.ndarray): An array of corresponding counts. - pixel_id (int): The id of the current pixel. Default to None - **kwargs: Additional keyword arguments. + Parameters + ---------- + charge : np.ndarray + An array of charge values. + counts : np.ndarray + An array of corresponding counts. + pixel_id : int + The id of the current pixel. Default to None + kwargs + Additional keyword arguments. - Returns: - Tuple[np.ndarray, np.ndarray]: A tuple of fit coefficients for the pedestal and mean. + Returns + ------- + Tuple[np.ndarray, np.ndarray] + A tuple of fit coefficients for the pedestal and mean. + + Example usage:: - Example Usage: flat_field_maker = FlatFieldSPEMaker() charge = np.array([1, 2, 3, 4, 5]) counts = np.array([10, 20, 30, 40, 50]) @@ -301,7 +318,8 @@ def _get_mean_gaussian_fit( ax.plot( charge, histo_smoothed, - label=f"smoothed data with savgol filter (windows lenght : {windows_lenght}, order : {order})", + label=f"smoothed data with savgol filter (windows lenght : " + f"{windows_lenght}, order : {order})", ) ax.plot( charge, @@ -328,14 +346,17 @@ def _get_mean_gaussian_fit( ax.set_ylabel("Events", size=15) ax.legend(fontsize=7) os.makedirs( - f"{os.environ.get('NECTARCHAIN_LOG', '/tmp')}/{os.getpid()}/figures/", + f"{os.environ.get('NECTARCHAIN_LOG', '/tmp')}/{os.getpid()}/" + f"figures/", exist_ok=True, ) log.info( - f'figures of initialization of parameters will be accessible at {os.environ.get("NECTARCHAIN_LOG","/tmp")}/{os.getpid()}' + f"figures of initialization of parameters will be accessible at " + f'{os.environ.get("NECTARCHAIN_LOG","/tmp")}/{os.getpid()}' ) fig.savefig( - f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/figures/initialization_pedestal_pixel{pixel_id}_{os.getpid()}.pdf" + f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/figures/" + f"initialization_pedestal_pixel{pixel_id}_{os.getpid()}.pdf" ) fig.clf() plt.close(fig) @@ -365,7 +386,8 @@ def _get_mean_gaussian_fit( ax.plot( charge, histo_smoothed, - label=f"smoothed data with savgol filter (windows lenght : {windows_lenght}, order : {order})", + label=f"smoothed data with savgol filter (windows length : " + f"{windows_lenght}, order : {order})", ) ax.plot( charge, @@ -392,11 +414,13 @@ def _get_mean_gaussian_fit( ax.set_ylabel("Events", size=15) ax.legend(fontsize=7) os.makedirs( - f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/figures/", + f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/" + f"figures/", exist_ok=True, ) fig.savefig( - f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/figures/initialization_mean_pixel{pixel_id}_{os.getpid()}.pdf" + f"{os.environ.get('NECTARCHAIN_LOG','/tmp')}/{os.getpid()}/figures/" + f"initialization_mean_pixel{pixel_id}_{os.getpid()}.pdf" ) fig.clf() plt.close(fig) @@ -443,11 +467,17 @@ def __init__( ) -> None: """ Initializes the FlatFieldSingleHHVSPEMaker object. - Args: - charge (np.ma.masked_array or array-like): The charge data. - counts (np.ma.masked_array or array-like): The counts data. - *args: Additional positional arguments. - **kwargs: Additional keyword arguments. + + Parameters + ---------- + charge : np.ma.masked_array or array-like + The charge data. + counts : np.ma.masked_array or array-like + The counts data. + ``*args`` + Additional positional arguments. + ``**kwargs`` + Additional keyword arguments. """ super().__init__(pixels_id=pixels_id, config=config, parent=parent, **kwargs) if isinstance(charge, np.ma.masked_array): @@ -466,12 +496,20 @@ def create_from_chargesContainer( cls, signal: ChargesContainer, config=None, parent=None, **kwargs ): """ - Creates an instance of FlatFieldSingleHHVSPEMaker using charge and counts data from a ChargesContainer object. - Args: - signal (ChargesContainer): The ChargesContainer object. - **kwargs: Additional keyword arguments. - Returns: - FlatFieldSingleHHVSPEMaker: An instance of FlatFieldSingleHHVSPEMaker. + Creates an instance of FlatFieldSingleHHVSPEMaker using charge and counts data + from a ChargesContainer object. + + Parameters + ---------- + signal : ChargesContainer + The ChargesContainer object. + ``**kwargs`` + Additional keyword arguments. + + Returns + ------- + FlatFieldSingleHHVSPEMaker + An instance of FlatFieldSingleHHVSPEMaker. """ histo = ChargesComponent.histo_hg(signal, autoscale=True) return cls( @@ -487,28 +525,28 @@ def create_from_chargesContainer( @property def charge(self): """ - Returns a deep copy of the __charge attribute. + Returns a deep copy of the ``__charge`` attribute. """ return copy.deepcopy(self.__charge) @property def _charge(self): """ - Returns the __charge attribute. + Returns the ``__charge`` attribute. """ return self.__charge @property def counts(self): """ - Returns a deep copy of the __counts attribute. + Returns a deep copy of the ``__counts`` attribute. """ return copy.deepcopy(self.__counts) @property def _counts(self): """ - Returns the __counts attribute. + Returns the ``__counts`` attribute. """ return self.__counts @@ -517,16 +555,17 @@ def _fill_results_table_from_dict( self, dico: dict, pixels_id: np.ndarray, return_fit_array: bool = True ) -> None: """ - Populates the results table with fit values and errors for each pixel based on the dictionary provided as input. - - Args: - dico (dict): A dictionary containing fit values and errors for each pixel. - pixels_id (np.ndarray): An array of pixel IDs. - - Returns: - None + Populates the results table with fit values and errors for each pixel based on + the dictionary provided as input. + + Parameters + ---------- + dico : dict + A dictionary containing fit values and errors for each pixel. + pixels_id : np.ndarray + An array of pixel IDs. """ - ########NEED TO BE OPTIMIZED!!!########### + # ######### NEED TO BE OPTIMIZED!!! ########### chi2_sig = signature(_chi2) if return_fit_array: fit_array = np.empty(len(pixels_id), dtype=np.object_) @@ -540,7 +579,8 @@ def _fill_results_table_from_dict( index = np.argmax(self._results.pixels_id == pixels_id[i]) if len(values) != len(chi2_sig.parameters): e = Exception( - "the size out the minuit output parameters values array does not fit the signature of the minimized cost function" + "the size out the minuit output parameters values array does " + "not fit the signature of the minimized cost function" ) log.error(e, exc_info=True) raise e @@ -560,7 +600,8 @@ def _fill_results_table_from_dict( ) if fit_status["has_reached_call_limit"]: self.log.warning( - f"The minuit fit for pixel {pixels_id[i]} reached the call limit" + f"The minuit fit for pixel {pixels_id[i]} reached the call " + f"limit" ) self._results.likelihood[index] = fit_status["values"] ndof = ( @@ -588,19 +629,37 @@ def _NG_Likelihood_Chi2( ): """ Calculates the chi-square value using the MPE2 function. - Parameters: - pp (float): The pp parameter. - res (float): The res parameter. - mu2 (float): The mu2 parameter. - n (float): The n parameter. - muped (float): The muped parameter. - sigped (float): The sigped parameter. - lum (float): The lum parameter. - charge (np.ndarray): An array of charge values. - counts (np.ndarray): An array of count values. - **kwargs: Additional keyword arguments. - Returns: - float: The chi-square value. + The different parameters are explained in `Caroff et al. (2019) `_. + + .. _CAROFF: https://ui.adsabs.harvard.edu/abs/2019SPIE11119E..1WC + + Parameters + ---------- + pp : float + The pp parameter. + res : float + The res parameter. + mu2 : float + The mu2 parameter. + n : float + The n parameter. + muped : float + The muped parameter. + sigped : float + The sigped parameter. + lum : float + The lum parameter. + charge : np.ndarray + An array of charge values. + counts : np.ndarray + An array of count values. + ``**kwargs`` + Additional keyword arguments. + + Returns + ------- + Lik : float + The chi-square value. """ if not (kwargs.get("ntotalPE", False)): for i in range(1000): @@ -623,13 +682,18 @@ def _make_minuitParameters_array_from_parameters( self, pixels_id: np.ndarray = None, **kwargs ) -> np.ndarray: """ - Create an array of Minuit fit instances based on the parameters and data for each pixel. - - Args: - pixels_id (optional): An array of pixel IDs. If not provided, all pixels will be used. - - Returns: - np.ndarray: An array of Minuit fit instances, one for each pixel. + Create an array of Minuit fit instances based on the parameters and data for + each pixel. + + Parameters + ---------- + pixels_id : optional + An array of pixel IDs. If not provided, all pixels will be used. + + Returns + ------- + minuitParameters_array : np.ndarray: + An array of Minuit fit instances, one for each pixel. """ if pixels_id is None: npix = self.npixels @@ -665,12 +729,17 @@ def run_fit(i: int, tol: float) -> dict: """ Perform a fit on a specific pixel using the Minuit package. - Args: - i (int): The index of the pixel to perform the fit on. - - Returns: - dict: A dictionary containing the fit values and errors for the specified pixel. - The keys are "values_i" and "errors_i", where "i" is the index of the pixel. + Parameters + ---------- + i : int + The index of the pixel to perform the fit on. + + Returns + ------- + : dict + A dictionary containing the fit values and errors for the specified pixel. + The keys are ``values_i`` and ``errors_i``, where ``i`` is the index of the + pixel. """ log = logging.getLogger(__name__) log.setLevel(logging.INFO) @@ -784,7 +853,8 @@ def run( log.error(e, exc_info=True) raise e self.log.info( - f"total time for multiproc with starmap_async execution is {time.time() - t:.2e} sec" + f"total time for multiproc with starmap_async execution is " + f"{time.time() - t:.2e} sec" ) else: @@ -804,7 +874,8 @@ def run( t = time.time() self.display(pixels_id, **kwargs) log.info( - f"time for plotting {len(pixels_id)} pixels : {time.time() - t:.2e} sec" + f"time for plotting {len(pixels_id)} pixels : " + f"{time.time() - t:.2e} sec" ) return output @@ -824,13 +895,12 @@ def plot_single_pyqtgraph( likelihood: float, ) -> tuple: import pyqtgraph as pg - from pyqtgraph.Qt import QtCore, QtGui - # from pyqtgraph.Qt import QtGui + # from pyqtgraph.Qt import QtCore, QtGui + from pyqtgraph.Qt import QtGui - app = pg.mkQApp(name="minimal") - # - ## Create a window + # app = pg.mkQApp(name="minimal") + # Create a window win = pg.GraphicsLayoutWidget(show=False) win.setWindowTitle(f"SPE fit pixel id : {pixel_id}") @@ -855,10 +925,11 @@ def plot_single_pyqtgraph( pedestalWidth, luminosity, ), - name=f"SPE model fit", + name="SPE model fit", ) legend = pg.TextItem( - f"SPE model fit gain : {gain - gain_error:.2f} < {gain:.2f} < {gain + gain_error:.2f} ADC/pe,\n likelihood : {likelihood:.2f}", + f"SPE model fit gain : {gain - gain_error:.2f} < {gain:.2f} < " + f"{gain + gain_error:.2f} ADC/pe,\n likelihood : {likelihood:.2f}", color=(200, 200, 200), ) legend.setPos(pedestal, np.max(counts) / 2) @@ -896,23 +967,42 @@ def plot_single_matplotlib( ) -> tuple: """ Generate a plot of the data and a model fit for a specific pixel. + The different parameters are explained in `Caroff et al. (2019) `_. + + .. _CAROFF: https://ui.adsabs.harvard.edu/abs/2019SPIE11119E..1WC + + Parameters + ---------- + pixel_id: int + The ID of the pixel for which the plot is generated. + charge: np.ndarray + An array of charge values. + counts: np.ndarray + An array of event counts corresponding to the charge values. + pp: float + The value of the ``pp`` parameter. + resolution: float + The value of the ``resolution`` parameter. + gain: float + The value of the ``gain`` parameter. + gain_error: float + The value of the ``gain_error`` parameter. + n: float + The value of the ``n`` parameter. + pedestal: float + The value of the ``pedestal`` parameter. + pedestalWidth: float + The value of the ``pedestalWidth`` parameter. + luminosity: float + The value of the ``luminosity`` parameter. + likelihood: float + The value of the ``likelihood`` parameter. + + Returns + ------- + : tuple + A tuple containing the generated plot figure and the axes of the plot. - Args: - pixel_id (int): The ID of the pixel for which the plot is generated. - charge (np.ndarray): An array of charge values. - counts (np.ndarray): An array of event counts corresponding to the charge values. - pp (float): The value of the `pp` parameter. - resolution (float): The value of the `resolution` parameter. - gain (float): The value of the `gain` parameter. - gain_error (float): The value of the `gain_error` parameter. - n (float): The value of the `n` parameter. - pedestal (float): The value of the `pedestal` parameter. - pedestalWidth (float): The value of the `pedestalWidth` parameter. - luminosity (float): The value of the `luminosity` parameter. - likelihood (float): The value of the `likelihood` parameter. - - Returns: - tuple: A tuple containing the generated plot figure and the axes of the plot. """ fig, ax = plt.subplots(1, 1, figsize=(8, 8)) ax.errorbar(charge, counts, np.sqrt(counts), zorder=0, fmt=".", label="data") @@ -931,7 +1021,8 @@ def plot_single_matplotlib( ), zorder=1, linewidth=2, - label=f"SPE model fit \n gain : {gain - gain_error:.2f} < {gain:.2f} < {gain + gain_error:.2f} ADC/pe,\n likelihood : {likelihood:.2f}", + label=f"SPE model fit \n gain : {gain - gain_error:.2f} < {gain:.2f} < " + f"{gain + gain_error:.2f} ADC/pe,\n likelihood : {likelihood:.2f}", ) ax.set_xlabel("Charge (ADC)", size=15) ax.set_ylabel("Events", size=15) @@ -944,15 +1035,23 @@ def display(self, pixels_id: np.ndarray, package="pyqtgraph", **kwargs) -> None: """ Display and save the plot for each specified pixel ID. - Args: - pixels_id (np.ndarray): An array of pixel IDs. - package (str): the package use to plot, can be matplotlib or pyqtgraph. Default to pyqtgraph - **kwargs: Additional keyword arguments. - figpath (str): The path to save the generated plot figures. Defaults to "/tmp/NectarGain_pid{os.getpid()}". + Parameters + ---------- + pixels_id: np.ndarray + An array of pixel IDs. + package: str + the package used to plot, can be matplotlib or pyqtgraph. + Default to pyqtgraph + kwargs + Additional keyword arguments. + figpath : str + The path to save the generated plot figures. + Defaults to ``/tmp/NectarGain_pid{os.getpid()}``. """ figpath = kwargs.get( "figpath", - f"{os.environ.get('NECTARCHAIN_FIGURES','/tmp')}/NectarGain_pid{os.getpid()}", + f"{os.environ.get('NECTARCHAIN_FIGURES','/tmp')}/" + f"NectarGain_pid{os.getpid()}", ) self.log.debug(f"saving figures in {figpath}") os.makedirs(figpath, exist_ok=True) @@ -1010,7 +1109,9 @@ def display(self, pixels_id: np.ndarray, package="pyqtgraph", **kwargs) -> None: class SPEHHValgorithm(SPEnominalalgorithm): - """class to perform fit of the SPE HHV signal with n and pp free""" + """ + Class to perform fit of the SPE HHV signal with ``n`` and ``pp`` free. + """ parameters_file = Unicode( "parameters_SPEHHV.yaml", @@ -1025,7 +1126,7 @@ class SPEHHValgorithm(SPEnominalalgorithm): class SPEnominalStdalgorithm(SPEnominalalgorithm): - """class to perform fit of the SPE signal with n and pp fixed""" + """Class to perform fit of the SPE signal with ``n`` and ``pp`` fixed""" parameters_file = Unicode( "parameters_SPEnominalStd.yaml", @@ -1045,11 +1146,16 @@ def __init__( """ Initializes a new instance of the FlatFieldSingleHHVStdSPEMaker class. - Args: - charge (np.ndarray): The charge data. - counts (np.ndarray): The counts data. - *args: Additional positional arguments. - **kwargs: Additional keyword arguments. + Parameters + ---------- + charge : np.ndarray + The charge data. + counts : np.ndarray + The counts data. + ``*args`` + Additional positional arguments. + ``**kwargs`` + Additional keyword arguments. """ super().__init__( pixels_id=pixels_id, @@ -1063,7 +1169,8 @@ def __init__( def __fix_parameters(self) -> None: """ - Fixes the values of the n and pp parameters by setting their frozen attribute to True. + Fixes the values of the ``n`` and ``pp`` parameters by setting their frozen + attribute to True. """ self.log.info("updating parameters by fixing pp and n") pp = self._parameters["pp"] @@ -1099,7 +1206,8 @@ class SPECombinedalgorithm(SPEnominalalgorithm): ).tag(config=True) SPE_result = Path( - help="the path of the SPE result container computed with very high voltage data", + help="the path of the SPE result container computed with " + "very high voltage data", ).tag(config=True) same_luminosity = Bool( @@ -1119,11 +1227,16 @@ def __init__( """ Initializes a new instance of the FlatFieldSingleHHVStdSPEMaker class. - Args: - charge (np.ndarray): The charge data. - counts (np.ndarray): The counts data. - *args: Additional positional arguments. - **kwargs: Additional keyword arguments. + Parameters + ---------- + charge : np.ndarray + The charge data. + counts : np.ndarray + The counts data. + ``*args`` + Additional positional arguments. + ``**kwargs`` + Additional keyword arguments. """ super().__init__( pixels_id=pixels_id, @@ -1150,15 +1263,18 @@ def __init__( == 0 ): self.log.warning( - "The intersection between pixels id from the data and those valid from the SPE fit result is empty" + "The intersection between pixels id from the data and those valid from " + "the SPE fit result is empty" ) def __fix_parameters(self) -> None: """ - Fixes the parameters n, pp, res, and possibly luminosity. + Fixes the parameters ``n``, ``pp``, ``res``, and possibly ``luminosity``. - Args: - same_luminosity (bool): Whether to fix the luminosity parameter. + Parameters + ---------- + same_luminosity : bool + Whether to fix the luminosity parameter. """ self.log.info("updating parameters by fixing pp, n and res") pp = self._parameters["pp"] @@ -1174,14 +1290,20 @@ def __fix_parameters(self) -> None: def _make_fit_array_from_parameters(self, pixels_id=None, **kwargs): """ - Generates the fit array from the fixed parameters and the fitted data obtained from a 1400V run. - - Args: - pixels_id (array-like, optional): The pixels to generate the fit array for. Defaults to None. - **kwargs: Arbitrary keyword arguments. - - Returns: - array-like: The fit array. + Generates the fit array from the fixed parameters and the fitted data obtained + from a 1400V run. + + Parameters + ---------- + pixels_id : array-like, optional + The pixels to generate the fit array for. Defaults to None. + ``**kwargs`` + Arbitrary keyword arguments. + + Returns + ------- + : array-like + The fit array. """ return super()._make_fit_array_from_parameters( pixels_id=pixels_id, @@ -1199,18 +1321,28 @@ def _update_parameters( **kwargs, ): """ - Updates the parameters with the fixed values from the fitted data obtained from a 1400V run. - - Args: - parameters (Parameters): The parameters to update. - charge (np.ndarray): The charge values. - counts (np.ndarray): The counts values. - pixel_id (int): The pixel ID. - nectarGainSPEresult (QTable): The fitted data obtained from a 1400V run. - **kwargs: Arbitrary keyword arguments. - - Returns: - dict: The updated parameters. + Updates the parameters with the fixed values from the fitted data obtained from + a 1400V run. + + Parameters + ---------- + parameters : Parameters + The parameters to update. + charge : np.ndarray + The charge values. + counts : np.ndarray + The counts values. + pixel_id : int + The pixel ID. + nectarGainSPEresult : QTable + The fitted data obtained from a 1400V run. + ``**kwargs`` + Arbitrary keyword arguments. + + Returns + ------- + param : dict + The updated parameters. """ param = super(__class__, __class__)._update_parameters( parameters, charge, counts, **kwargs diff --git a/src/nectarchain/makers/core.py b/src/nectarchain/makers/core.py index 5fdf8de8..e154ad35 100644 --- a/src/nectarchain/makers/core.py +++ b/src/nectarchain/makers/core.py @@ -74,14 +74,19 @@ def load_run( """Static method to load from $NECTARCAMDATA directory data for specified run with max_events. - Args:self.__run_number = run_number - run_number (int): run_id - maxevents (int, optional): max of events to be loaded. Defaults to -1, to - load everything. - run_file (optional) : if provided, will load this run file - Returns: - List[ctapipe_io_nectarcam.LightNectarCAMEventSource]: List of EventSource - for each run files. + Parameters + ---------- + run_number : int + run_id + maxevents : int, optional + max of events to be loaded. Defaults to -1, to load everything. + run_file : optional + if provided, will load this run file + + Returns + ------- + List[ctapipe_io_nectarcam.LightNectarCAMEventSource] + List of EventSource for each run files. """ # Load the data from the run file. if run_file is None: diff --git a/src/nectarchain/utils/stats.py b/src/nectarchain/utils/stats.py index ac02288b..5116d048 100644 --- a/src/nectarchain/utils/stats.py +++ b/src/nectarchain/utils/stats.py @@ -193,12 +193,11 @@ class CameraSampleStats(Stats): Examples -------- - Cumulating the rawdata from a run to get the average waveform + Cumulating the rawdata from a run to get the average waveform:: + >>> from nectarchain.utils.stats import CameraSampleStats >>> from ctapipe_io_nectarcam import NectarCAMEventSource - >>> reader = NectarCAMEventSource(input_url='NectarCAM.Run4560.00??.fits.fz') - >>> s = CameraSampleStats() >>> for event in reader: >>> s.add(event.r0.tel[0].waveform, diff --git a/src/nectarchain/utils/utils.py b/src/nectarchain/utils/utils.py index dd53b25b..13ff02cf 100644 --- a/src/nectarchain/utils/utils.py +++ b/src/nectarchain/utils/utils.py @@ -3,6 +3,7 @@ import math import numpy as np +from ctapipe.core.component import Component from iminuit import Minuit from scipy import interpolate, signal from scipy.special import gammainc @@ -12,15 +13,13 @@ log = logging.getLogger(__name__) log.handlers = logging.getLogger("__main__").handlers -from ctapipe.core.component import Component - class ComponentUtils: @staticmethod def is_in_non_abstract_subclasses( component: Component, motherClass="NectarCAMComponent" ): - from nectarchain.makers.component.core import NectarCAMComponent + from nectarchain.makers.component.core import NectarCAMComponent # noqa: F401 # module = importlib.import_module(f'nectarchain.makers.component.core') is_in = False @@ -38,7 +37,7 @@ def get_specific_traits(component: Component): if ComponentUtils.is_in_non_abstract_subclasses( component, "NectarCAMComponent" ) and not (component.SubComponents.default_value is None): - for component_name in component.SubComponents.default_value: #####CPT + for component_name in component.SubComponents.default_value: # CPT _class = getattr( importlib.import_module("nectarchain.makers.component"), component_name, @@ -66,7 +65,8 @@ def get_class_name_from_ComponentName(componentName: str): return _class raise ValueError( - "componentName is not a valid component, this component is not known as a child of NectarCAMComponent" + "componentName is not a valid component, this component is not known as a " + "child of NectarCAMComponent" ) @@ -106,12 +106,12 @@ def make_minuit_par_kwargs(parameters): @staticmethod def set_minuit_parameters_limits_and_errors(m: Minuit, parameters: dict): - """function to set minuit parameter limits and errors with Minuit >2.0 + """Function to set minuit parameter limits and errors with Minuit >2.0 Args: m (Minuit): a Minuit instance - parameters (dict): dict containing parameters names, limits errors - and values + parameters (dict): dict containing parameters names, limits errors and + values. """ for name in parameters["names"]: m.limits[name] = parameters[f"limit_{name}"] @@ -122,7 +122,8 @@ def set_minuit_parameters_limits_and_errors(m: Minuit, parameters: dict): # Useful functions for the fit def gaussian(x, mu, sig): - # return (1./(sig*np.sqrt(2*math.pi)))*np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.))) + # return (1./(sig*np.sqrt(2*math.pi))) * + # np.exp(-np.power(x - mu, 2.) / (2 * np.power(sig, 2.))) return norm.pdf(x, loc=mu, scale=sig) @@ -304,12 +305,14 @@ def sigma2(n, p, res, mu2): else: return n * SigMax(p, res, mu2) - # The real final model callign all the above for luminosity (lum) + PED, wil return probability of number of Spe + # The real final model callign all the above for luminosity (lum) + PED, wil return + # probability of number of Spe def MPE2(x, pp, res, mu2, n, muped, sigped, lum, **kwargs): log.debug( - f"pp = {pp}, res = {res}, mu2 = {mu2}, n = {n}, muped = {muped}, sigped = {sigped}, lum = {lum}" + f"pp = {pp}, res = {res}, mu2 = {mu2}, n = {n}, muped = {muped}, " + f"sigped = {sigped}, lum = {lum}" ) f = 0 ntotalPE = kwargs.get("ntotalPE", 0) @@ -322,7 +325,8 @@ def MPE2(x, pp, res, mu2, n, muped, sigped, lum, **kwargs): # print(ntotalPE) # about 8 sec, 1 sec by nPEPDF call # for i in range(ntotalPE): - # f = f + ((lum**i)/math.factorial(i)) * np.exp(-lum) * nPEPDF(x,pp,res,mu2,n,muped,sigped,i,int(mu2*ntotalPE+10*mu2)) + # f = f + ((lum**i)/math.factorial(i)) * np.exp(-lum) * + # nPEPDF(x,pp,res,mu2,n,muped,sigped,i,int(mu2*ntotalPE+10*mu2)) f = np.sum( [