@@ -51,6 +51,7 @@ def __init__(self, datap, case, typean, period):
5151 self .p_nptbins = len (self .lpt_finbinmin )
5252 self .lpt_probcutfin = datap ["mlapplication" ]["probcutoptimal" ]
5353
54+ self .signal_loss = datap ["analysis" ][self .typean ].get ("signal_loss" , "" )
5455 self .lvar2_binmin = datap ["analysis" ][self .typean ]["sel_binmin2" ]
5556 self .lvar2_binmax = datap ["analysis" ][self .typean ]["sel_binmax2" ]
5657 self .v_var2_binning = datap ["analysis" ][self .typean ]["var_binning2" ]
@@ -421,35 +422,90 @@ def efficiency(self):
421422 cEff .SetWindowSize (500 , 500 )
422423 cEff .SetLogy ()
423424
424- legeff = TLegend (.5 , .25 , .7 , .45 )
425+ legeff = TLegend (.5 , .20 , .7 , .45 )
425426 legeff .SetBorderSize (0 )
426427 legeff .SetFillColor (0 )
427428 legeff .SetFillStyle (0 )
428429 legeff .SetTextFont (42 )
429430 legeff .SetTextSize (0.035 )
430431
432+ if self .signal_loss :
433+ cSl = TCanvas ('cSl' , 'The Fit Canvas' )
434+ cSl .SetCanvasSize (1900 , 1500 )
435+ cSl .SetWindowSize (500 , 500 )
436+ legsl = TLegend (.5 , .20 , .7 , .45 )
437+ legsl .SetBorderSize (0 )
438+ legsl .SetFillColor (0 )
439+ legsl .SetFillStyle (0 )
440+ legsl .SetTextFont (42 )
441+ legsl .SetTextSize (0.035 )
442+
431443 for imult in range (self .p_nbin2 ):
432- stringbin2 = "_%s_%.2f_%.2f" % (self .v_var2_binning_gen , \
444+ stringbin2 = "_%s_%.2f_%.2f" % (self .v_var2_binning , \
433445 self .lvar2_binmin [imult ], \
434446 self .lvar2_binmax [imult ])
447+ legeffstring = "%.1f #leq %s < %.1f" % \
448+ (self .lvar2_binmin [imult ], self .p_latexbin2var , self .lvar2_binmax [imult ])
449+
450+ if self .signal_loss :
451+ h_gen_pr_sl = lfileeff .Get ("h_signal_loss_gen_pr" + stringbin2 )
452+ h_sel_pr_sl = lfileeff .Get ("h_signal_loss_rec_pr" + stringbin2 )
453+ h_sel_pr_sl .Divide (h_sel_pr_sl , h_gen_pr_sl , 1.0 , 1.0 , "B" )
454+ h_sel_pr_sl .SetLineColor (imult + 1 )
455+ h_sel_pr_sl .SetMarkerColor (imult + 1 )
456+ h_sel_pr_sl .SetMarkerStyle (21 )
457+ cSl .cd ()
458+ h_sel_pr_sl .Draw ("same" )
459+ fileouteff .cd ()
460+ h_sel_pr_sl .SetName ("signal_loss_pr_mult%d" % imult )
461+ h_sel_pr_sl .Write ()
462+
463+ legsl .AddEntry (h_sel_pr_sl , legeffstring , "LEP" )
464+ h_sel_pr_sl .GetXaxis ().SetTitle ("#it{p}_{T} (GeV/#it{c})" )
465+ h_sel_pr_sl .GetYaxis ().SetTitle ("Signal loss (prompt) %s" \
466+ % (self .p_latexnhadron ))
467+ h_sel_pr_sl .SetMinimum (0.7 )
468+ h_sel_pr_sl .SetMaximum (1.0 )
469+
435470 h_gen_pr = lfileeff .Get ("h_gen_pr" + stringbin2 )
436471 h_sel_pr = lfileeff .Get ("h_sel_pr" + stringbin2 )
437472 h_sel_pr .Divide (h_sel_pr , h_gen_pr , 1.0 , 1.0 , "B" )
473+
474+ if self .signal_loss :
475+ h_sel_pr .Multiply (h_sel_pr_sl )
476+
438477 h_sel_pr .SetLineColor (imult + 1 )
439478 h_sel_pr .SetMarkerColor (imult + 1 )
440479 h_sel_pr .SetMarkerStyle (21 )
480+ cEff .cd ()
441481 h_sel_pr .Draw ("same" )
442482 fileouteff .cd ()
443483 h_sel_pr .SetName ("eff_mult%d" % imult )
444484 h_sel_pr .Write ()
445- legeffstring = "%.1f #leq %s < %.1f" % \
446- (self .lvar2_binmin [imult ], self .p_latexbin2var , self .lvar2_binmax [imult ])
447485 legeff .AddEntry (h_sel_pr , legeffstring , "LEP" )
448486 h_sel_pr .GetXaxis ().SetTitle ("#it{p}_{T} (GeV/#it{c})" )
449- h_sel_pr .GetYaxis ().SetTitle ("Acc x efficiency (prompt) %s (1/GeV) " \
487+ h_sel_pr .GetYaxis ().SetTitle ("Acc x efficiency (prompt) %s" \
450488 % (self .p_latexnhadron ))
451489 h_sel_pr .SetMinimum (0.0004 )
452490 h_sel_pr .SetMaximum (0.4 )
491+
492+ if self .signal_loss :
493+ cSl .cd ()
494+ legsl .Draw ()
495+ cSl .SaveAs ("%s/SignalLoss%s%s.eps" % (self .d_resultsallpmc ,
496+ self .case , self .typean ))
497+
498+ cSlFD = TCanvas ('cSlFD' , 'The Fit Canvas' )
499+ cSlFD .SetCanvasSize (1900 , 1500 )
500+ cSlFD .SetWindowSize (500 , 500 )
501+ legslFD = TLegend (.5 , .20 , .7 , .45 )
502+ legslFD .SetBorderSize (0 )
503+ legslFD .SetFillColor (0 )
504+ legslFD .SetFillStyle (0 )
505+ legslFD .SetTextFont (42 )
506+ legslFD .SetTextSize (0.035 )
507+
508+ cEff .cd ()
453509 legeff .Draw ()
454510 cEff .SaveAs ("%s/Eff%s%s.eps" % (self .d_resultsallpmc ,
455511 self .case , self .typean ))
@@ -458,38 +514,71 @@ def efficiency(self):
458514 cEffFD .SetCanvasSize (1900 , 1500 )
459515 cEffFD .SetWindowSize (500 , 500 )
460516 cEffFD .SetLogy ()
461- legeffFD = TLegend (.5 , .25 , .7 , .45 )
517+ legeffFD = TLegend (.5 , .20 , .7 , .45 )
462518 legeffFD .SetBorderSize (0 )
463519 legeffFD .SetFillColor (0 )
464520 legeffFD .SetFillStyle (0 )
465521 legeffFD .SetTextFont (42 )
466522 legeffFD .SetTextSize (0.035 )
467523
468524 for imult in range (self .p_nbin2 ):
469- stringbin2 = "_%s_%.2f_%.2f" % (self .v_var2_binning_gen , \
525+ stringbin2 = "_%s_%.2f_%.2f" % (self .v_var2_binning , \
470526 self .lvar2_binmin [imult ], \
471527 self .lvar2_binmax [imult ])
528+ legeffFDstring = "%.1f #leq %s < %.1f" % \
529+ (self .lvar2_binmin [imult ], self .p_latexbin2var , self .lvar2_binmax [imult ])
530+
531+ if self .signal_loss :
532+ h_gen_fd_sl = lfileeff .Get ("h_signal_loss_gen_fd" + stringbin2 )
533+ h_sel_fd_sl = lfileeff .Get ("h_signal_loss_rec_fd" + stringbin2 )
534+ h_sel_fd_sl .Divide (h_sel_fd_sl , h_gen_fd_sl , 1.0 , 1.0 , "B" )
535+ h_sel_fd_sl .SetLineColor (imult + 1 )
536+ h_sel_fd_sl .SetMarkerColor (imult + 1 )
537+ h_sel_fd_sl .SetMarkerStyle (21 )
538+ cSlFD .cd ()
539+ h_sel_fd_sl .Draw ("same" )
540+ fileouteff .cd ()
541+ h_sel_fd_sl .SetName ("signal_loss_fd_mult%d" % imult )
542+ h_sel_fd_sl .Write ()
543+
544+ legslFD .AddEntry (h_sel_fd_sl , legeffstring , "LEP" )
545+ h_sel_fd_sl .GetXaxis ().SetTitle ("#it{p}_{T} (GeV/#it{c})" )
546+ h_sel_fd_sl .GetYaxis ().SetTitle ("Signal loss (feeddown) %s" \
547+ % (self .p_latexnhadron ))
548+ h_sel_fd_sl .SetMinimum (0.7 )
549+ h_sel_fd_sl .SetMaximum (1.0 )
550+
472551 h_gen_fd = lfileeff .Get ("h_gen_fd" + stringbin2 )
473552 h_sel_fd = lfileeff .Get ("h_sel_fd" + stringbin2 )
474553 h_sel_fd .Divide (h_sel_fd , h_gen_fd , 1.0 , 1.0 , "B" )
554+
555+ if self .signal_loss :
556+ h_sel_fd .Multiply (h_sel_fd_sl )
557+
475558 h_sel_fd .SetLineColor (imult + 1 )
476559 h_sel_fd .SetMarkerColor (imult + 1 )
477560 h_sel_fd .SetMarkerStyle (21 )
561+ cEffFD .cd ()
478562 h_sel_fd .Draw ("same" )
479563 fileouteff .cd ()
480564 h_sel_fd .SetName ("eff_fd_mult%d" % imult )
481565 h_sel_fd .Write ()
482- legeffFDstring = "%.1f #leq %s < %.1f" % \
483- (self .lvar2_binmin [imult ], self .p_latexbin2var , self .lvar2_binmax [imult ])
484566 legeffFD .AddEntry (h_sel_fd , legeffFDstring , "LEP" )
485567 h_sel_fd .GetXaxis ().SetTitle ("#it{p}_{T} (GeV/#it{c})" )
486- h_sel_fd .GetYaxis ().SetTitle ("Acc x efficiency feed-down %s (1/GeV) " \
568+ h_sel_fd .GetYaxis ().SetTitle ("Acc x efficiency feed-down %s" \
487569 % (self .p_latexnhadron ))
488570 h_sel_fd .SetMinimum (0.0004 )
489571 h_sel_fd .SetMaximum (0.4 )
572+
573+ cEffFD .cd ()
490574 legeffFD .Draw ()
491575 cEffFD .SaveAs ("%s/EffFD%s%s.eps" % (self .d_resultsallpmc ,
492576 self .case , self .typean ))
577+ if self .signal_loss :
578+ cSlFD .cd ()
579+ legslFD .Draw ()
580+ cSlFD .SaveAs ("%s/SignalLossFD%s%s.eps" % (self .d_resultsallpmc ,
581+ self .case , self .typean ))
493582
494583
495584 def plotter (self ):
0 commit comments