Ojt ddlZddlZddlmZddlZddlm Z ddl m Z ddl m Z ddlmZmZddgdfd efd Zddejdd d ejd dd ejd dd ejdddejddddfdZddejdd d ejd dd ejd dd ejdddejddddfdZdS)N)parse_boosted_w_target)parse_resolved_w_target)parse_semi_resolved_w_target)calc_effcalc_pur-pur_effmodec(tj|d}tj|}d|vr|d|d<|d|d<td|dD}td|dD}td|dD} td |dD} |rt ||\} } } nd \} } | r1|r/t ||d d \}}}t ||d | \}}}n)| rt ||d d \}}}d \}}n d \}}d \}}| r1|r/t ||d d \}}}t ||d | \}}}n)| rt ||d d \}}}d \}}n d \}}d \}}|rt ||d|d\}}}| r%| r#|r!t ||| ||g|d\}}}nx| r"|r t ||| |g|d\}}}nT| r"|r t ||| |g|d\}}}n0|rt ||| |d\}}}nd \}}n d \}}d \}}|r|s| s| rg}|D]?}g}|D]#} | ddkr|| $||@g}!|D]?}g}|D]#}"|"ddkr||"$|!|@nd \}}!| r|rg}#|D]?}g}|D]#}$|$ddkr||$$|#|@g}%|D]?}g}|D]#}&|&ddkr||&$|%|@nd \}#}%| r|rg}'|D]?}g}|D]#}$|$ddkr||$$|'|@g}(|D]?}g}|D]#}&|&ddkr||&$|(|@nd \}'}(i})|rd|vr"t| ||||d\|)d<|)d<d|vr"t| ||||d\|)d<|)d<d|vr"t| ddd|d\|)d<|)d<d|vr"t| ddd|d\|)d<|)d<|rd|vr"tddd||d\|)d<|)d<d|vr"tddd||d\|)d <|)d!<|s| s| rpd|vr"tddd||d\|)d"<|)d#<d|vr"tddd|!|d\|)d$<|)d%<| rd|vr"td|dd|d&\|)d'<|)d(<d|vr"td|dd|d&\|)d)<|)d*<|rpd|vr"td|#dd|d&\|)d+<|)d,<d|vr"td|%dd|d&\|)d-<|)d.<| rd|vr"tdd|d|d/\|)d0<|)d1<d|vr"tdd|d|d/\|)d2<|)d3<|rpd|vr"tdd|'d|d/\|)d4<|)d5<d|vr"tdd|(d|d/\|)d6<|)d7<|r7td8tj d9| Djd|rttd:tj d;|Djd|s| s| r7tdtj d?|Djd|r7td@tj dA|#Djd| rptdBtj dC|Djd|r7tdDtj dE|'Djd|)|| | |fS)FNaTARGETSzSpecialKey.InputsINPUTSzSpecialKey.Targetsc3K|]}d|vV dS)FRN.0keys 3/data/spatop/billy_eval/SPAtop/src/analysis/plot.py zcalc_pur_eff..&HHsts{HHHHHHc3K|]}d|vV dS)FBNrrs rrzcalc_pur_eff..rrc3K|]}d|vV dS)SRqqNrrs rrzcalc_pur_eff..&LL33LLLLLLrc3K|]}d|vV dS)SRbqNrrs rrzcalc_pur_eff..rr)NNqq) fjs_reco_bqqbqr)fjs_recochi2_cutpurallpur_mpurerr_meffeff_mefferr_mrpur_bpurerr_beff_befferr_brpur_rpurerr_reff_refferr_rpur_r_or purerr_r_oreff_r_or efferr_r_orrpur_srqq purerr_srqqeff_srqq efferr_srqq pur_srqq_orpurerr_srqq_or eff_srqq_orefferr_srqq_orr pur_srbq purerr_srbqeff_srbq efferr_srbq pur_srbq_orpurerr_srbq_or eff_srbq_orefferr_srbq_orzNumber of Boosted Prediction:cg|] }|D]}| Srrreventpreds r z calc_pur_eff..s'8n8n8n%hm8n8n`d8n8n8n8nrz(Number of Resolved Prediction before OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..s%LLLueLLddLLLLrz'Number of Resolved Prediction after OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..s&VVV5PUVV$VVVVrz0Number of Semi-Resolved-qq Prediction before OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..%SSSuUSSTdSSSSrz/Number of Semi-Resolved-qq Prediction after OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..&]]]5W\]]t$]]]]rz0Number of Semi-Resolved-bq Prediction before OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..rRrz/Number of Semi-Resolved-bq Prediction after OR:cg|] }|D]}| SrrrKs rrNz calc_pur_eff..rTr)h5Filekeysanyrrrappendlowerrrprintnparrayshape)* target_path pred_path bins_dict chi2_cutsr pred_h5 target_h5 FR_condition FB_conditionSRqq_conditionSRbq_conditionLUT_boosted_predLUT_boosted_targetr"LUT_semiresolved_qq_predLUT_semiresolved_qq_target fjs_reco_qqLUT_semiresolved_qq_wOR_predLUT_semiresolved_qq_wOR_target_LUT_semiresolved_bq_predLUT_semiresolved_bq_target fjs_reco_bqLUT_semiresolved_bq_wOR_predLUT_semiresolved_bq_wOR_targetLUT_resolved_predLUT_resolved_targetLUT_resolved_wOR_predLUT_resolved_wOR_targetLUT_resolved_pred_no_ORrL event_no_ORpredFRtLUT_resolved_target_no_OR targetFRtLUT_semiresolved_qq_pred_no_ORpredSRt LUT_semiresolved_qq_target_no_OR targetSRtLUT_semiresolved_bq_pred_no_OR LUT_semiresolved_bq_target_no_ORresultss* r calc_pur_effr sgi%%G $$I &&#$78$%9: HHgi.@.E.E.G.GHHHHHLHHgi.@.E.E.G.GHHHHHLLL')2D2I2I2K2KLLLLLNLL')2D2I2I2K2KLLLLLN:=S w> > :,ll0:,,R,RLhirt{~BQUMVMVMVI "H : !#:#:1;..9C66HHH>H"$* 8 8EK  0 01:??&&w/// # * *; 7 7 7 7$&!, : :EK" 2 2 Q<1$$&&y111 % , ,[ 9 9 9 9  :>H:!:V,V)+&1 ? ?EK  0 01:??&&w/// * 1 1+ > > > >+-(3 A AEK" 2 2 Q<1$$&&y111 , 3 3K @ @ @ @  ALVH&(HV,V)+&1 ? ?EK  0 01:??&&w/// * 1 1+ > > > >+-(3 A AEK" 2 2 Q<1$$&&y111 , 3 3K @ @ @ @  ALVH&(HG t DJJLL 4<=MOknJLaclmrcs5t5t 1GG gj1 DJJLL 4<=OQorPRiktuzk{5|5| 1GG gj1 DJJLL 4<=MtUY[_ajkoap4q4q 1GG gj1 DJJLL 4<=OQUW[]aclmqcr4s4s 1GG gj1 E DJJLL 4 E^ E $$>FtTSWYpr{}AsB?C?C; #W]%; $$>FtTSWYrt}CuD?E?E; #W]%; T DJJLL :B4IacgimoxypA;B;B 7GJ !7 DJJLL :B4Iceikoqz|BrC;D;D 7GJ !7  T $$DLTSqswy}@IJP@QERERA &0@(A $$DLTSsuy{BKLRBSETETA &0@(A T DJJLL :B4OgimoxypA;B;B 7GJ !7 DJJLL :B4Oikoqz|BrC;D;D 7GJ !7  T $$DLTSWYwy}@IJP@QERERA &0@(A $$DLTSWYy{BKLRBSETETA &0@(Az -rx8n8nK[8n8n8n/o/o/uvw/xyyy  6 HLL(9LLL M M STU V     > ^  9VV,CVVVWW]^_`     > HSS(@SSS T T Z[\ ]      A]],J]]]^^defg     > HSS(@SSS T T Z[\ ]      A]],J]]]^^defg    L.., NNri, dii2)rrr rr(c d|D}d|D}d|D}tjddd\}} tjddd\} } tjddd\} } tjddd\}}tjddd\}}tjddd\}}tjddd\}}tjddd\}}| ddd | d dd | d dd |d dd |ddd |ddd |ddd |ddd d\}}|D]U\}}|}d|vr\|d}|d}d|ddD}t d|t||||d\}} }}}!n)t d|t|||d\}} }}}!| rh| |d|d|d|ddd |!| |d"|d#|d"|d$dd |!|!rn| |d%|d&|d%|d'dd |!| s|s|r4||d%|d(|d%|d)dd |!|rj||d*|d+|d*|d,dd |!| r4||d*|d-|d*|d.dd |!|rj||d/|d0|d/|d1dd |!| r4||d/|d2|d/|d3dd |!W| | d4d5g| | d4d5g| | d4d5g| | d4d5g| | d4d5g| | d4d5g| | d4d5g| | d4d5gtj || tj||d6z| tj||d7z| tj||d8z| tj||d9z| tj||d:z| tj||d;z| tj||dNc di|]-\}}|tj|d|dz|dz .Sr&r^r[rrbinss r z#plot_pur_w_dict..K C RYtQb\DH4 5 5rc^i|])\}|fdtjdz D*S)c>g|]}||dzzdz Sr&rri plot_binss rrNz.plot_pur_w_dict...0 W W Wy|iA..!3 W W Wrrrangesizerrrs @rrz#plot_pur_w_dict..T C W W W WU9>TUCU=V=V W W Wrci|]=\}}||d|dz dz tj|jddz z>Srrr&r^onesr`rs rrz#plot_pur_w_dict.. [ C ilYq\)Q .9Ka9O1P1P Prr)figsize All categories Reco top pT (GeV)Reconstruction Purity2Reconstruction Purity vs. All category Reco top pTxlabelylabeltitleReco Boosted top pT (GeV)-Reconstruction Purity vs. Reco Boosted top pTReco Resolved top pT (GeV).Reconstruction Purity vs. Reco Resolved top pT2Resolved Purity After OR vs. Reco Resolved top pTReco Semi-Resolved top pT (GeV)3Reconstruction Purity vs. Reco Semi-Resolved top pT.T:::cS:::r Processingr')rdr )r r(r)r*orxyxerryerrfmtcapsizelabelrr.r/rr2r3r6r7rr:r;r>r?r rBrCrFrG皙皙? _merged.pdf _boosted.pdf _resolved.pdf_resolved_wOR.pdf_semiresolved_qq.pdf_semiresolved_qq_wOR.pdf_semiresolved_bq.pdf_semiresolved_bq_wOR.pdf)itemspltsubplotssetr\splitr]rerrorbarlegendset_ylimshowsavefigospathjoin" plot_dictra save_path proj_namercplot_bins_dictbin_centers_dict xerr_dictfig_max_mfig_bax_bfig_rax_rfig_r_orax_r_orfig_srqqax_srqq fig_srqq_or ax_srqq_orfig_srbqax_srbq fig_srbq_or ax_srbq_orrirjtagrb tag_labeltag_listrdrrhrgs" rplot_pur_w_dictrs"**N,2244,2244I,q!V444KE4,q!V444KE4,q!V444KE4 Q6:::Hg Q6:::Hg!l1a@@@K Q6:::Hg!l1a@@@K HH2'C   HH+'>   HH,'?   KK,'C  KK1'D NN1'M  KK1'D NN1'M&2"NN#//++77Y SYY[[ yy~~H1+C::Xabb\:::I , * * *R^_jluxAMV]bScScSc OG\>><< , * * *R^_jluxAHMSNSNSN OG\>><   MM"5)WW-=IeDT[bcm[ntwBCKT     MM"4(GG,<9T?Y`akYlru@AIR       MM"4(GG,<9T?Y`akYlru@AIR     ~    &t, 0C)TX/`ghu`v|JKS\!     "6*gj.A RXHY`ghu`v|JKS\     ##&v.'-2HyY_O`gnohAGJTU]f$     "6*gj.A RXHY`ghu`v|JKS\     ##&v.'-2HyY_O`gnohAGJTU]f$ KKMMMMM4+KKMMMMM4+KKMMMMM4+ NN dC[!!! NN dC[!!!s $$$ NN dC[!!!s $$$HJJJ bgll9i .EFFGGG bgll9i.FGGHHH bgll9i.GHHIIIi;N1NOOPPPi;Q1QRRSSSBGLLI>X4XYYZZZi;Q1QRRSSSBGLLI>X4XYYZZZ Frc <d|D}d|D}d|D}tjddd\}} tjddd\} } tjddd\} } tjddd\}}tjddd\}}tjddd\}}tjddd\}}tjddd\}}| dd d d | dd dd | ddd d | dddd | ddd d | dddd |ddd d |dddd |ddd d |dddd |ddd d |dddd |ddd d |dddd |ddd d |dddd d \}}|D]@\}}|}d!|vr[|d"}|d}d#|ddD}t d$|t ||||%\}} }}}!n't d$|t |||\}} }}}!| r| d|d&|d'|d&|d(d)d*|+| d|d&|d,|d&|d-d)d*|+| d|d.|d/|d.|d0d)d*|+| d|d.|d1|d.|d2d)d*|+|!r| d|d3|d4|d3|d5d)d*|+| d|d3|d6|d3|d7d)d*|+| s|s|rt|d|d3|d8|d3|d9d)d*|+|d|d3|d:|d3|d;d)d*|+|r|d|d<|d=|d<|d>d)d*|+|d|d<|d?|d<|d@d)d*|+| rt|d|d<|dA|d<|dBd)d*|+|d|d<|dC|d<|dDd)d*|+|r|d|dE|dF|dE|dGd)d*|+|d|dE|dH|dE|dId)d*|+| rt|d|dE|dJ|dE|dKd)d*|+|d|dE|dL|dE|dMd)d*|+B| d| d| d dNdOg| d dNdOg| d| d| d dNdOg| d dNdOg| d| d| d dNdOg| d dNdOg|d|d|d dNdOg|d dNdOg|d|d|d dNdOg|d dNdOg|d|d|d dNdOg|d dNdOg|d|d|d dNdOg|d dNdOg|d|d|d dNdOg|d dNdOgtj || tj ||dPz| tj ||dQz| tj ||dRz| tj ||dSz| tj ||dTz| tj ||dUz| tj ||dVz| tj ||dWzdS)XNc di|]-\}}|tj|d|dz|dz .Srrrs rrz'plot_pur_eff_w_dict..rrc^i|])\}|fdtjdz D*S)c>g|]}||dzzdz Srrrs rrNz2plot_pur_eff_w_dict...rrrrrs @rrz'plot_pur_eff_w_dict..rrci|]=\}}||d|dz dz tj|jddz z>Srrrs rrz'plot_pur_eff_w_dict..rrrr&)rrrrrrrzAll categories Gen top pT (GeV)zReconstruction Efficiencyz5Reconstruction Efficiency vs. All category Gen top pTrrzGen Boosted top pT (GeV)z0Reconstruction Efficiency vs. Gen Boosted top pTrrzGen Resolved top pT (GeV)z1Reconstruction Efficiency vs. Gen Resolved top pTrz4Resolved Efficiency After OR vs. Gen Resolved top pTrrzGen Semi-Resolved top pT (GeV)z6Reconstruction Efficiency vs. Gen Semi-Resolved top pTrz>Semi-Resolved Efficiency After OR vs. Gen Semi-Resolved top pTrrrrc,g|]}t|Srrrs rrNz'plot_pur_eff_w_dict..8rrr)rdr(r)r*rrrr,r-rr.r/r0r1rr2r3r4r5r6r7r8r9rr:r;r<r=r>r?r@rAr rBrCrDrErFrGrHrIrrrrrrrrrr)rrrrrr]rrrrrrrrrrs" rplot_pur_eff_w_dictrs"**N,2244,2244I,q!W555KE4,q!W555KE4,q!W555KE4 Q7;;;Hg Q7;;;Hg!l1aAAAK Q7;;;Hg!l1aAAAK GKK2'C  GKK1+F  GKK+'>  GKK*+A  GKK,'?  GKK++B  AJNN,'C  AJNN++E  AJNN1'D  AJNN0+G qM1'M qM0+O  AJNN1'D  AJNN0+G qM1'M qM0+O&2"NN#//++OOY S==yy~~H1+C::Xabb\:::I , * * *R^_jluxAMVSWSWSW OG\>><< , * * *R^_jluxASBSB OG\>><   G  "5)WW-=IeDT[bcm[ntwBCKT     G  "5)WW-=IeDT[bcm[ntwBCKT     G  "4(GG,<9T?Y`akYlru@AIR     G  "4(GG,<9T?Y`akYlru@AIR       G  "4(GG,<9T?Y`akYlru@AIR     G  "4(GG,<9T?Y`akYlru@AIR     ~   ##&t, 0C)TX/`ghu`v|JKS\$ ##&t, 0C)TX/`ghu`v|JKS\$   AJ  "6*gj.A RXHY`ghu`v|JKS\     AJ  "6*gj.A RXHY`ghu`v|JKS\     1 &&&v.'-2HyY_O`gnohAGJTU]f'1 &&&v.'-2HyY_O`gnohAGJTU]f'   AJ  "6*gj.A RXHY`ghu`v|JKS\     AJ  "6*gj.A RXHY`ghu`v|JKS\     1 &&&v.'-2HyY_O`gnohAGJTU]f'1 &&&v.'-2HyY_O`gnohAGJTU]f' GNNGNNGdC[!!!GdC[!!!GNNGNNGdC[!!!GdC[!!!GNNGNNGdC[!!!GdC[!!! AJ AJ AJs $$$ AJs $$$ AJ AJ AJs $$$ AJs $$$qMqMqMD#;'''qMD#;''' AJ AJ AJs $$$ AJs $$$qMqMqMD#;'''qMD#;'''HJJJ bgll9i .EFFGGG bgll9i.FGGHHH bgll9i.GHHIIIi;N1NOOPPPi;Q1QRRSSSBGLLI>X4XYYZZZi;Q1QRRSSSBGLLI>X4XYYZZZ Fr)rh5pyrWmatplotlib.pyplotpyplotrnumpyr^src.analysis.boostedrsrc.analysis.resolvedrsrc.analysis.semi_resolvedrsrc.analysis.utilsrrstrrarangerrrrrrs 777777999999CCCCCC11111111@B2hR[fOfOcfOfOfOfOX'+dbi3## #sB'' #sB''biT2&&ryD"%% x x x x z'+dbi3## #sB'' #sB''biT2&&ryD"%% H H H H H H r