//============================================================================ //Added by Andreas Moll, 18.03.2009 //============================================================================ Double_t polin2(Double_t x, Double_t a0, Double_t a1, Double_t a2) { Double_t polin = a0 + a1*x + a2*x*x; return polin; } //Asymmetric double gaussian consisting of //first gaussian: f*exp(-{(x-x0)^2}over{sigma0^2}) //and second gaussian depending on xx0: (1-f)*exp(-{(x-x0)^2}over{sigma2^2}) Double_t asymmetricDoubleGauss(Double_t x, Double_t sigma0, Double_t sigma1, Double_t sigma2, Double_t fraction) { Double_t g1, g2, a1, a2; a1 = (x)/(sigma0); if (x < 0.0) a2 = (x)/(sigma1); else a2 = (x)/(sigma2); g1 = TMath::Exp(-0.5*a1*a1); g2 = TMath::Exp(-0.5*a2*a2); Double_t result = fraction*g1+(1-fraction)*g2; return result; } Double_t breitWigner(Double_t x, Double_t mass, Double_t Gamma) { Double_t massTerm = (x*x-mass*mass); Double_t widthTerm = mass*Gamma; Double_t inverse = massTerm*massTerm+widthTerm*widthTerm; Double_t BW = widthTerm*widthTerm/inverse; return BW; } //Parameter indices par: //0,1,2,3: polynomial of degree 3 for combinatoric background fit //4,5,6 : 3 sigma values for assymetric double gaussian //7 : fraction //8 : offset //9 : mass //10 : width //11 : signal normalization //12 : common normalization Double_t conBWGausBackDoubleGaussian(Double_t* x, Double_t* par) { int ngrid = 400; Double_t range = 7.0; Double_t backg = polin2(x[0],par[0],par[1],par[2]); Double_t x1 = x[0] - range*par[4]; Double_t dx = 2.0*range*par[4]/Double_t(ngrid); Double_t signal = 0.0; Double_t xcur, dg, bw, diff; for (int i=0;iSetOptStat(0); gStyle->SetOptTitle(0); canv->Range(66,-169.9208,266,774.0835); canv->SetFillColor(10); canv->SetBorderMode(0); canv->SetBorderSize(2); canv->SetTickx(1); canv->SetTicky(1); canv->SetLeftMargin(0.19); canv->SetRightMargin(0.06); canv->SetTopMargin(0.08); canv->SetBottomMargin(0.18); canv->SetFrameLineWidth(2); canv->SetFrameBorderMode(0); canv->SetFrameLineWidth(2); canv->SetFrameBorderMode(0); TH1 *InvMassTopFittedHist = new TH1F("InvMassTopFittedHist","Top quark invariant mass (with KinFit)",75,100,250); InvMassTopFittedHist->SetBinContent(0,2); InvMassTopFittedHist->SetBinContent(1,2); InvMassTopFittedHist->SetBinContent(2,2); InvMassTopFittedHist->SetBinContent(3,3); InvMassTopFittedHist->SetBinContent(4,1); InvMassTopFittedHist->SetBinContent(6,2); InvMassTopFittedHist->SetBinContent(7,4); InvMassTopFittedHist->SetBinContent(8,2); InvMassTopFittedHist->SetBinContent(9,6); InvMassTopFittedHist->SetBinContent(10,5); InvMassTopFittedHist->SetBinContent(11,5); InvMassTopFittedHist->SetBinContent(12,8); InvMassTopFittedHist->SetBinContent(13,7); InvMassTopFittedHist->SetBinContent(14,15); InvMassTopFittedHist->SetBinContent(15,11); InvMassTopFittedHist->SetBinContent(16,13); InvMassTopFittedHist->SetBinContent(17,11); InvMassTopFittedHist->SetBinContent(18,7); InvMassTopFittedHist->SetBinContent(19,10); InvMassTopFittedHist->SetBinContent(20,15); InvMassTopFittedHist->SetBinContent(21,19); InvMassTopFittedHist->SetBinContent(22,21); InvMassTopFittedHist->SetBinContent(23,21); InvMassTopFittedHist->SetBinContent(24,23); InvMassTopFittedHist->SetBinContent(25,27); InvMassTopFittedHist->SetBinContent(26,25); InvMassTopFittedHist->SetBinContent(27,31); InvMassTopFittedHist->SetBinContent(28,39); InvMassTopFittedHist->SetBinContent(29,68); InvMassTopFittedHist->SetBinContent(30,52); InvMassTopFittedHist->SetBinContent(31,78); InvMassTopFittedHist->SetBinContent(32,119); InvMassTopFittedHist->SetBinContent(33,150); InvMassTopFittedHist->SetBinContent(34,184); InvMassTopFittedHist->SetBinContent(35,308); InvMassTopFittedHist->SetBinContent(36,483); InvMassTopFittedHist->SetBinContent(37,595); InvMassTopFittedHist->SetBinContent(38,640); InvMassTopFittedHist->SetBinContent(39,540); InvMassTopFittedHist->SetBinContent(40,428); InvMassTopFittedHist->SetBinContent(41,328); InvMassTopFittedHist->SetBinContent(42,269); InvMassTopFittedHist->SetBinContent(43,218); InvMassTopFittedHist->SetBinContent(44,154); InvMassTopFittedHist->SetBinContent(45,140); InvMassTopFittedHist->SetBinContent(46,126); InvMassTopFittedHist->SetBinContent(47,97); InvMassTopFittedHist->SetBinContent(48,105); InvMassTopFittedHist->SetBinContent(49,88); InvMassTopFittedHist->SetBinContent(50,68); InvMassTopFittedHist->SetBinContent(51,60); InvMassTopFittedHist->SetBinContent(52,64); InvMassTopFittedHist->SetBinContent(53,58); InvMassTopFittedHist->SetBinContent(54,60); InvMassTopFittedHist->SetBinContent(55,62); InvMassTopFittedHist->SetBinContent(56,61); InvMassTopFittedHist->SetBinContent(57,68); InvMassTopFittedHist->SetBinContent(58,54); InvMassTopFittedHist->SetBinContent(59,40); InvMassTopFittedHist->SetBinContent(60,71); InvMassTopFittedHist->SetBinContent(61,49); InvMassTopFittedHist->SetBinContent(62,42); InvMassTopFittedHist->SetBinContent(63,41); InvMassTopFittedHist->SetBinContent(64,47); InvMassTopFittedHist->SetBinContent(65,58); InvMassTopFittedHist->SetBinContent(66,35); InvMassTopFittedHist->SetBinContent(67,40); InvMassTopFittedHist->SetBinContent(68,37); InvMassTopFittedHist->SetBinContent(69,36); InvMassTopFittedHist->SetBinContent(70,41); InvMassTopFittedHist->SetBinContent(71,36); InvMassTopFittedHist->SetBinContent(72,31); InvMassTopFittedHist->SetBinContent(73,34); InvMassTopFittedHist->SetBinContent(74,30); InvMassTopFittedHist->SetBinContent(75,12); InvMassTopFittedHist->SetEntries(6742); InvMassTopFittedHist->SetStats(0); TF1 *finalFitt = new TF1("finalFitt",backPlusSignalDoubleGaussian,155,205,16); finalFitt->SetFillColor(19); finalFitt->SetFillStyle(0); finalFitt->SetLineColor(2); finalFitt->SetLineWidth(3); finalFitt->SetChisquare(26.70183); finalFitt->SetNDF(23); finalFitt->SetParameter(0,-53169.73); finalFitt->SetParError(0,0); finalFitt->SetParLimits(0,-53169.73,-53169.73); finalFitt->SetParameter(1,606.4279); finalFitt->SetParError(1,0); finalFitt->SetParLimits(1,606.4279,606.4279); finalFitt->SetParameter(2,-1.670615); finalFitt->SetParError(2,0); finalFitt->SetParLimits(2,-1.670615,-1.670615); finalFitt->SetParameter(3,0); finalFitt->SetParError(3,0); finalFitt->SetParLimits(3,1,1); finalFitt->SetParameter(4,4.188445); finalFitt->SetParError(4,0); finalFitt->SetParLimits(4,4.188445,4.188445); finalFitt->SetParameter(5,2.148757); finalFitt->SetParError(5,0); finalFitt->SetParLimits(5,2.148757,2.148757); finalFitt->SetParameter(6,8.985214); finalFitt->SetParError(6,0); finalFitt->SetParLimits(6,8.985214,8.985214); finalFitt->SetParameter(7,0.7515468); finalFitt->SetParError(7,0); finalFitt->SetParLimits(7,0.7515468,0.7515468); finalFitt->SetParameter(8,0); finalFitt->SetParError(8,0); finalFitt->SetParLimits(8,1,1); finalFitt->SetParameter(9,174.1211); finalFitt->SetParError(9,0.11826); finalFitt->SetParLimits(9,0,0); finalFitt->SetParameter(10,1.424612); finalFitt->SetParError(10,0.1046175); finalFitt->SetParLimits(10,0,0); finalFitt->SetParameter(11,847.0786); finalFitt->SetParError(11,0); finalFitt->SetParLimits(11,847.0786,847.0786); finalFitt->SetParameter(12,0.0478502); finalFitt->SetParError(12,0.002357764); finalFitt->SetParLimits(12,0,0); finalFitt->SetParameter(13,-0.8690796); finalFitt->SetParError(13,0); finalFitt->SetParLimits(13,-0.8690796,-0.8690796); finalFitt->SetParameter(14,0.002061463); finalFitt->SetParError(14,0); finalFitt->SetParLimits(14,0.002061463,0.002061463); finalFitt->SetParameter(15,0.0001817561); finalFitt->SetParError(15,0); finalFitt->SetParLimits(15,0.0001817561,0.0001817561); finalFitt->GetXaxis()->SetNdivisions(506); finalFitt->GetXaxis()->SetLabelFont(42); finalFitt->GetXaxis()->SetLabelOffset(0.015); finalFitt->GetXaxis()->SetLabelSize(0.06); finalFitt->GetXaxis()->SetTitleSize(0.07); finalFitt->GetXaxis()->SetTitleFont(42); finalFitt->GetYaxis()->SetNdivisions(506); finalFitt->GetYaxis()->SetLabelFont(42); finalFitt->GetYaxis()->SetLabelOffset(0.015); finalFitt->GetYaxis()->SetLabelSize(0.06); finalFitt->GetYaxis()->SetTitleSize(0.07); finalFitt->GetYaxis()->SetTitleOffset(1.1); finalFitt->GetYaxis()->SetTitleFont(42); InvMassTopFittedHist->GetListOfFunctions()->Add(finalFitt); InvMassTopFittedHist->SetLineColor(2); InvMassTopFittedHist->SetLineWidth(2); InvMassTopFittedHist->SetMarkerStyle(20); InvMassTopFittedHist->SetMarkerSize(0.7); InvMassTopFittedHist->GetXaxis()->SetTitle("m_{top}/GeV"); InvMassTopFittedHist->GetYaxis()->SetTitle("Events"); InvMassTopFittedHist->GetXaxis()->SetNdivisions(506); InvMassTopFittedHist->GetXaxis()->SetLabelFont(42); InvMassTopFittedHist->GetXaxis()->SetLabelOffset(0.015); InvMassTopFittedHist->GetXaxis()->SetLabelSize(0.06); InvMassTopFittedHist->GetXaxis()->SetTitleSize(0.07); InvMassTopFittedHist->GetXaxis()->SetTitleFont(42); InvMassTopFittedHist->GetYaxis()->SetNdivisions(506); InvMassTopFittedHist->GetYaxis()->SetLabelFont(42); InvMassTopFittedHist->GetYaxis()->SetLabelOffset(0.015); InvMassTopFittedHist->GetYaxis()->SetLabelSize(0.06); InvMassTopFittedHist->GetYaxis()->SetTitleSize(0.07); InvMassTopFittedHist->GetYaxis()->SetTitleOffset(1.3); InvMassTopFittedHist->GetYaxis()->SetTitleFont(42); InvMassTopFittedHist->GetZaxis()->SetLabelFont(42); InvMassTopFittedHist->GetZaxis()->SetLabelOffset(0.015); InvMassTopFittedHist->GetZaxis()->SetLabelSize(0.06); InvMassTopFittedHist->GetZaxis()->SetTitleSize(0.07); InvMassTopFittedHist->GetZaxis()->SetTitleOffset(1.1); InvMassTopFittedHist->GetZaxis()->SetTitleFont(42); InvMassTopFittedHist->Draw("EP"); TH1 *InvMassTopTrueBackgroundFittedHist = new TH1F("InvMassTopTrueBackgroundFittedHist","# Top quark - true background in signal (Fitted)",75,100,250); InvMassTopTrueBackgroundFittedHist->SetBinContent(0,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(1,1); InvMassTopTrueBackgroundFittedHist->SetBinContent(2,1); InvMassTopTrueBackgroundFittedHist->SetBinContent(6,1); InvMassTopTrueBackgroundFittedHist->SetBinContent(7,4); InvMassTopTrueBackgroundFittedHist->SetBinContent(8,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(9,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(10,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(11,1); InvMassTopTrueBackgroundFittedHist->SetBinContent(12,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(13,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(14,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(15,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(16,4); InvMassTopTrueBackgroundFittedHist->SetBinContent(17,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(18,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(19,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(20,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(21,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(22,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(23,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(24,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(25,1); InvMassTopTrueBackgroundFittedHist->SetBinContent(26,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(27,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(28,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(29,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(30,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(31,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(32,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(33,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(34,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(35,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(36,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(37,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(38,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(39,3); InvMassTopTrueBackgroundFittedHist->SetBinContent(40,13); InvMassTopTrueBackgroundFittedHist->SetBinContent(41,9); InvMassTopTrueBackgroundFittedHist->SetBinContent(42,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(43,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(44,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(45,9); InvMassTopTrueBackgroundFittedHist->SetBinContent(46,2); InvMassTopTrueBackgroundFittedHist->SetBinContent(47,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(48,10); InvMassTopTrueBackgroundFittedHist->SetBinContent(49,12); InvMassTopTrueBackgroundFittedHist->SetBinContent(50,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(51,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(52,10); InvMassTopTrueBackgroundFittedHist->SetBinContent(53,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(54,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(55,10); InvMassTopTrueBackgroundFittedHist->SetBinContent(56,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(57,10); InvMassTopTrueBackgroundFittedHist->SetBinContent(58,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(59,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(60,13); InvMassTopTrueBackgroundFittedHist->SetBinContent(61,10); InvMassTopTrueBackgroundFittedHist->SetBinContent(62,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(63,7); InvMassTopTrueBackgroundFittedHist->SetBinContent(64,9); InvMassTopTrueBackgroundFittedHist->SetBinContent(65,9); InvMassTopTrueBackgroundFittedHist->SetBinContent(66,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(67,12); InvMassTopTrueBackgroundFittedHist->SetBinContent(68,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(69,5); InvMassTopTrueBackgroundFittedHist->SetBinContent(70,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(71,8); InvMassTopTrueBackgroundFittedHist->SetBinContent(72,9); InvMassTopTrueBackgroundFittedHist->SetBinContent(73,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(74,6); InvMassTopTrueBackgroundFittedHist->SetBinContent(75,2); InvMassTopTrueBackgroundFittedHist->SetEntries(423); InvMassTopTrueBackgroundFittedHist->SetStats(0); /* TF1 *backgroundFitt = new TF1("backgroundFitt","",150,215); backgroundFitt->SetFillColor(19); backgroundFitt->SetFillStyle(0); backgroundFitt->SetLineWidth(3); backgroundFitt->SetChisquare(37.18986); backgroundFitt->SetNDF(30); backgroundFitt->GetXaxis()->SetNdivisions(506); backgroundFitt->GetXaxis()->SetLabelFont(42); backgroundFitt->GetXaxis()->SetLabelOffset(0.015); backgroundFitt->GetXaxis()->SetLabelSize(0.06); backgroundFitt->GetXaxis()->SetTitleSize(0.07); backgroundFitt->GetXaxis()->SetTitleFont(42); backgroundFitt->GetYaxis()->SetNdivisions(506); backgroundFitt->GetYaxis()->SetLabelFont(42); backgroundFitt->GetYaxis()->SetLabelOffset(0.015); backgroundFitt->GetYaxis()->SetLabelSize(0.06); backgroundFitt->GetYaxis()->SetTitleSize(0.07); backgroundFitt->GetYaxis()->SetTitleOffset(1.1); backgroundFitt->GetYaxis()->SetTitleFont(42); backgroundFitt->SetParameter(0,-0.8690796); backgroundFitt->SetParError(0,40.05484); backgroundFitt->SetParLimits(0,0,0); backgroundFitt->SetParameter(1,0.002061463); backgroundFitt->SetParError(1,0.4462204); backgroundFitt->SetParLimits(1,0,0); backgroundFitt->SetParameter(2,0.0001817561); backgroundFitt->SetParError(2,0.001231778); backgroundFitt->SetParLimits(2,0,0); InvMassTopTrueBackgroundFittedHist->GetListOfFunctions()->Add(backgroundFitt); */ InvMassTopTrueBackgroundFittedHist->SetFillColor(4); InvMassTopTrueBackgroundFittedHist->SetFillStyle(3004); InvMassTopTrueBackgroundFittedHist->SetLineColor(4); InvMassTopTrueBackgroundFittedHist->SetLineWidth(2); InvMassTopTrueBackgroundFittedHist->SetMarkerStyle(20); InvMassTopTrueBackgroundFittedHist->SetMarkerSize(0.7); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetTitle("Top mass [GeV]"); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetNdivisions(506); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetLabelFont(42); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetLabelOffset(0.015); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetLabelSize(0.06); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetTitleSize(0.07); InvMassTopTrueBackgroundFittedHist->GetXaxis()->SetTitleFont(42); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetNdivisions(506); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetLabelFont(42); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetLabelOffset(0.015); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetLabelSize(0.06); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetTitleSize(0.07); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetTitleOffset(1.1); InvMassTopTrueBackgroundFittedHist->GetYaxis()->SetTitleFont(42); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetLabelFont(42); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetLabelOffset(0.015); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetLabelSize(0.06); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetTitleSize(0.07); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetTitleOffset(1.1); InvMassTopTrueBackgroundFittedHist->GetZaxis()->SetTitleFont(42); InvMassTopTrueBackgroundFittedHist->Draw("same HIST"); TLatex * tex = new TLatex(110,600,"b) bq#bar{q} #bar{b}l#nu"); tex->SetTextColor(1); tex->SetTextFont(42); tex->SetTextSize(0.06); tex->SetLineWidth(2); tex->Draw(); TLatex * tex = new TLatex(200,600,"100fb^{-1}"); tex->SetTextColor(1); tex->SetTextFont(42); tex->SetTextSize(0.06); tex->SetLineWidth(2); tex->Draw(); canv->Modified(); canv->cd(); canv->SetSelected(canv); canv->SaveAs("SL_InvMassTopFitted.eps"); canv->SaveAs("SL_InvMassTopFitted.gif"); }