47def CscChamberEfficiency(inputs):
48 h_NumNClusSegm = inputs[0][1][0].Clone()
49 side = 'A'
50 nbins = 90
51 minbin = 0
52 maxbin = 18
53 if '_EA' not in h_NumNClusSegm.GetName():
54 side = 'C'
55 nbins = 85
56 minbin = -17
57 maxbin = 0
58 h_eff = TH1F("Muon_Segm_Efficiency_E"+side,"EndCap"+side+": #eta-segment efficiency per sector", nbins, minbin, maxbin)
59 xlabels = getCSCLabelx("labels_occupancy_signal_E"+side)
60
61 for ibin in range(len(xlabels)):
62 h_eff.GetXaxis().SetBinLabel(ibin+1, xlabels[ibin])
63 h_eff.GetYaxis().SetTitle("efficiency")
64
65 for layer in range(1,5):
67 for ichamber in range(1,17):
68 num = h_NumNClusSegm.GetBinContent(46,1+5*ichamber)
69 num_err = h_NumNClusSegm.GetBinError(46,1+5*ichamber)
70 den = h_NumNClusSegm.GetBinContent(10*layer-4,1+5*ichamber)
71 den_err = h_NumNClusSegm.GetBinError(10*layer-4,1+5*ichamber)
72 eff, err = getCSCEfficiency(num, num_err, den, den_err)
73 h_eff.SetBinContent(5*ichamber+1+(layer-1),eff)
74 h_eff.SetBinError(5*ichamber+1+(layer-1),err)
75
76 elif(side == 'C'):
77 for ichamber in range(1,17):
78 num = h_NumNClusSegm.GetBinContent(46, 86-5*ichamber)
79 num_err = h_NumNClusSegm.GetBinError(46, 86-5*ichamber)
80 den = h_NumNClusSegm.GetBinContent(10*layer-4, 86-5*ichamber)
81 den_err = h_NumNClusSegm.GetBinError(10*layer-4, 86-5*ichamber)
82 eff, err = getCSCEfficiency(num, num_err, den, den_err)
83 h_eff.SetBinContent(90-layer-5*ichamber,eff)
84 h_eff.SetBinError(90-layer-5*ichamber,err)
85
86 return [h_eff]