#include "TDSuperAna.hh" //void XSroutine(lumtype, muon_data, Zmumu, HwwStn_zewk6m_180_0001.zlog, _zewk6m_runinfo) void TDSuperAna::XSroutine2() { char buffer[500]; //GoodRunv2 lumquery; //TDRunSet lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(0))));//-_runstoignore; TDRunSet lumrunset; if(_stn)lumrunset=(*(_hwwlvlvGoodRun17.GetRunSet(_dilType.Int2Type(0))));//-_runstoignore; if(!_stn)lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(0))));//-_runstoignore; lumrunset.SetMinMax(_minRun, _maxRun); TDRunSet MClumrunset=lumrunset; MClumrunset.SetMinMax(_minRun, _maxRun); //lumrunset.SetMax(186598); //lumrunset.SetMin(186599); //double lum_val=lumquery.Loop(&lumrunset)*1.019; //TDRunInfoSet lumins("./v16goodrunquery/allreqruns.secs_OffLumi_bhel.dat"); TDRunInfoSet lumins("./v17goodrunquery/allreqruns.secs_OffLumi_bhel.dat"); //TDRunInfoSet lumins("./v16goodrunquery/allreqruns.list_OffLumi_bhel.dat"); double lum_val=(lumins.GetSumTDRunInfo(lumrunset)._goodobsp)*1.019/1000; for(int dilnumber=0; dilnumber!=2; dilnumber++) { if(_stn)lumrunset=(*(_hwwlvlvGoodRun17.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; if(!_stn)lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; lumrunset.SetMinMax(_minRun, _maxRun); // lumrunset.SetMax(186598); // lumrunset.SetMin(186599); // double lum_val=(lumins.GetSumTDRunInfo(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))._goodobsp)/1000; //double lum_val=lumquery.Loop(&lumrunset)*1.019; TDVnEEE Lum(lum_val, 0.0, 0.0, lum_val*0.059, "Lum", "Sample Luminosity"); TDVnEEE ElecmcEventsGenerated(GetSubAna("Zee")->GetGoodGenZ(dilnumber), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); //TD the dilepton factor is taken care of in the weight for now. fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(dilnumber)<< " Zs in mass window: "<GetGoodGenMassZ(MClumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(dilnumber)<GetGoodGenMassZ(MClumrunset)/GetSubAna("Zee")->GetInputEvents(dilnumber)<< " fz0&mass: "<GetGoodGenZ(dilnumber)/GetSubAna("Zee")->GetInputEvents(dilnumber)<< " fz0: "<GetGoodGenZ(dilnumber)/GetSubAna("Zee")->GetGoodGenMassZ(MClumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetGoodZDilepton(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZeeSameSign(GetSubAna("Zee")->GetSSDilepton(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZeeInt(GetSubAna("Zee")->GetGoodZDilepton(dilnumber), "NumMC", "No. MC events"); // TDVnEEE ElecmcEventsGenerated(GetSubAna("Zee")->GetGoodGenZ(dilnumber), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); sprintf(buffer,"electronZxs_%s", (_dilType.Int2StringDash(dilnumber)).c_str()); TDVnEEE ElectronZxs=crossection(buffer, dataInt, ZeeInt, dataSSInt, Lum, ElecmcEventsGenerated, true, fitinfo); ElectronZxs.PrintValues(); _excelDataFile<<_dilType.Int2StringDash(dilnumber)<<" "; ExcelDataOut(ElectronZxs, _excelDataFile); _excelDataFile<25 && dilnumber<30)continue; if(dilnumber==36 || dilnumber==37)continue;//no electron-SCMIO xs's. if(_stn)lumrunset=(*(_hwwlvlvGoodRun17.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; if(!_stn)lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; lumrunset.SetMinMax(_minRun, _maxRun); MClumrunset=lumrunset; MClumrunset.SetMinMax(_minRun, _maxRun); // lumrunset.SetMax(186598); //lumrunset.SetMin(186599); //double lum_val=lumquery.Loop(&lumrunset)*1.019; // double lum_val=(lumins.GetSumTDRunInfo(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))._goodobsp)/1000; TDVnEEE Lum(lum_val, 0.0, 0.0, lum_val*0.059, "Lum", "Sample Luminosity"); TDVnEEE dataInt(GetSubAna("data")->GetGoodZDilepton(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZmumuSameSign(GetSubAna("Zmumu")->GetSSDilepton(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZmumuInt(GetSubAna("Zmumu")->GetGoodZDilepton(dilnumber), "NumMC", "No. MC events"); TDVnEEE MuonmcEventsGenerated(GetSubAna("Zmumu")->GetGoodGenZ(dilnumber), 0, 0.0, 0.0, "MuonMcGen", "No. Z->mumu Generated"); //if(dilnumber==17){LumCMUP=Lum; MuonmcEventsGeneratedCMUP=MuonmcEventsGenerated;} //if(dilnumber==22){LumCMX=Lum; MuonmcEventsGeneratedCMX=MuonmcEventsGenerated;} fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(dilnumber)<< " Zs in mass window: "<GetGoodGenMassZ(MClumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(dilnumber)<GetGoodGenMassZ(MClumrunset)/GetSubAna("Zmumu")->GetInputEvents(dilnumber)<< " fz0&mass: "<GetGoodGenZ(dilnumber)/GetSubAna("Zmumu")->GetInputEvents(dilnumber)<< " fz0: "<GetGoodGenZ(dilnumber)/GetSubAna("Zmumu")->GetGoodGenMassZ(MClumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetGoodGenZ(lumrunset), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(lumrunset)<< " Zs in mass window: "<GetGoodGenMassZ(lumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(lumrunset)<GetGoodGenMassZ(lumrunset)/GetSubAna("Zee")->GetInputEvents(lumrunset)<< " fz0&mass: "<GetGoodGenZ(lumrunset)/GetSubAna("Zee")->GetInputEvents(lumrunset)<< " fz0: "<GetGoodGenZ(lumrunset)/GetSubAna("Zee")->GetGoodGenMassZ(lumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetGoodZDilepton_mycut(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton_mycut(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZeeSameSign(GetSubAna("Zee")->GetSSDilepton_mycut(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZeeInt(GetSubAna("Zee")->GetGoodZDilepton_mycut(dilnumber), "NumMC", "No. MC events"); // TDVnEEE ElecmcEventsGenerated(GetSubAna("Zee")->GetGoodGenZ(dilnumber), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); sprintf(buffer,"electronZxs_%s", (_dilType.Int2StringDash(dilnumber)).c_str()); TDVnEEE ElectronZxs=crossection(buffer, dataInt, ZeeInt, dataSSInt, Lum, ElecmcEventsGenerated, true, fitinfo); ElectronZxs.PrintValues(); _excelDataFile<<_dilType.Int2StringDash(dilnumber)<<" "; ExcelDataOut(ElectronZxs, _excelDataFile); _excelDataFile<25 && dilnumber<30)continue; if(dilnumber==36 || dilnumber==37)continue;//no electron-SCMIO xs's. if(_stn)lumrunset=(*(_hwwlvlvGoodRun17.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; if(!_stn)lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; lumrunset.SetMinMax(_minRun, _maxRun); // lumrunset.SetMax(186598); //lumrunset.SetMin(186599); //double lum_val=lumquery.Loop(&lumrunset)*1.019; // double lum_val=(lumins.GetSumTDRunInfo(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))._goodobsp)/1000; TDVnEEE Lum(lum_val, 0.0, 0.0, lum_val*0.059, "Lum", "Sample Luminosity"); TDVnEEE dataInt(GetSubAna("data")->GetGoodZDilepton_mycut(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton_mycut(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZmumuSameSign(GetSubAna("Zmumu")->GetSSDilepton_mycut(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZmumuInt(GetSubAna("Zmumu")->GetGoodZDilepton_mycut(dilnumber), "NumMC", "No. MC events"); TDVnEEE MuonmcEventsGenerated(GetSubAna("Zmumu")->GetGoodGenZ(lumrunset), 0, 0.0, 0.0, "MuonMcGen", "No. Z->mumu Generated"); fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(lumrunset)<< " Zs in mass window: "<GetGoodGenMassZ(lumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(lumrunset)<GetGoodGenMassZ(lumrunset)/GetSubAna("Zmumu")->GetInputEvents(lumrunset)<< " fz0&mass: "<GetGoodGenZ(lumrunset)/GetSubAna("Zmumu")->GetInputEvents(lumrunset)<< " fz0: "<GetGoodGenZ(lumrunset)/GetSubAna("Zmumu")->GetGoodGenMassZ(lumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetGoodGenZ(lumrunset), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(lumrunset)<< " Zs in mass window: "<GetGoodGenMassZ(lumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(lumrunset)<GetGoodGenMassZ(lumrunset)/GetSubAna("Zee")->GetInputEvents(lumrunset)<< " fz0&mass: "<GetGoodGenZ(lumrunset)/GetSubAna("Zee")->GetInputEvents(lumrunset)<< " fz0: "<GetGoodGenZ(lumrunset)/GetSubAna("Zee")->GetGoodGenMassZ(lumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetGoodZDilepton_1020cut(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton_1020cut(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZeeSameSign(GetSubAna("Zee")->GetSSDilepton_1020cut(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZeeInt(GetSubAna("Zee")->GetGoodZDilepton_1020cut(dilnumber), "NumMC", "No. MC events"); // TDVnEEE ElecmcEventsGenerated(GetSubAna("Zee")->GetGoodGenZ(dilnumber), 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated"); sprintf(buffer,"electronZxs_%s", (_dilType.Int2StringDash(dilnumber)).c_str()); TDVnEEE ElectronZxs=crossection(buffer, dataInt, ZeeInt, dataSSInt, Lum, ElecmcEventsGenerated, true, fitinfo); ElectronZxs.PrintValues(); _excelDataFile<<_dilType.Int2StringDash(dilnumber)<<" "; ExcelDataOut(ElectronZxs, _excelDataFile); _excelDataFile<25 && dilnumber<30)continue; if(dilnumber==36 || dilnumber==37)continue;//no electron-SCMIO xs's. if(_stn)lumrunset=(*(_hwwlvlvGoodRun17.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; if(!_stn)lumrunset=(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))-_runstoignore; lumrunset.SetMinMax(_minRun, _maxRun); // lumrunset.SetMax(186598); //lumrunset.SetMin(186599); //double lum_val=lumquery.Loop(&lumrunset)*1.019; // double lum_val=(lumins.GetSumTDRunInfo(*(_hwwlvlvGoodRun.GetRunSet(_dilType.Int2Type(dilnumber))))._goodobsp)/1000; TDVnEEE Lum(lum_val, 0.0, 0.0, lum_val*0.059, "Lum", "Sample Luminosity"); TDVnEEE dataInt(GetSubAna("data")->GetGoodZDilepton_1020cut(dilnumber), "Numdata", "No. Data events"); TDVnEEE dataSSInt(GetSubAna("data")->GetSSDilepton_1020cut(dilnumber), "NumSSdata", "No. Same Sign Data events"); TDVnEEE ZmumuSameSign(GetSubAna("Zmumu")->GetSSDilepton_1020cut(dilnumber), "NumSSMC", "No. Same Sign MC events"); TDVnEEE ZmumuInt(GetSubAna("Zmumu")->GetGoodZDilepton_1020cut(dilnumber), "NumMC", "No. MC events"); TDVnEEE MuonmcEventsGenerated(GetSubAna("Zmumu")->GetGoodGenZ(lumrunset), 0, 0.0, 0.0, "MuonMcGen", "No. Z->mumu Generated"); fitinfo<<(_dilType.Int2StringDash(dilnumber)).c_str()<< " events: "<GetInputEvents(lumrunset)<< " Zs in mass window: "<GetGoodGenMassZ(lumrunset)<< " Zs in mass window and z0<60: "<GetGoodGenZ(lumrunset)<GetGoodGenMassZ(lumrunset)/GetSubAna("Zmumu")->GetInputEvents(lumrunset)<< " fz0&mass: "<GetGoodGenZ(lumrunset)/GetSubAna("Zmumu")->GetInputEvents(lumrunset)<< " fz0: "<GetGoodGenZ(lumrunset)/GetSubAna("Zmumu")->GetGoodGenMassZ(lumrunset)<GetRawDilNumber(dilnumber)<<" MC events failing good run: "<GetFailGoodRun(dilnumber)<< " MC events failing extra good run: "<GetFailExtraGoodRun(dilnumber)<GetHistSet("data")->GetAnaHist("SameSignDilMass")->GetHist()->Integral(), "muondataSameSign", "same sign events in the muon data"); TDVnEEE electrondataSameSign(HistSets->GetHistSet("data")->GetAnaHist("SameSignDilMass")->GetHist()->Integral(), "electronsamesign", "same sign events in the electron data"); testmasspeak.RangeMassfitter(*((TH1F*)(HistSets->GetHistSet("data")->GetAnaHist("DileptonMass")->GetHist())), 87.0, 95.0); TDVnEEE muondataInt=testmasspeak.GetVnEIntegral(); double tempsyserror=HistSets->GetHistSet("Zmumu")->GetAnaHist("WeightError")->GetHist()->GetMean(); std::cout<<"mean"<GetHistSet("Zmumu")->GetAnaHist("WeightError")->GetHist()->GetMean()<GetHistSet("Zmumu")->GetAnaHist("Weight")->GetHist()->GetRMS(); //std::cout<<"tempsyserror"<GetHistSet("Zmumu")->GetAnaHist("Weight")->GetHist()->GetMean(); //muondataInt.SetsysterrorOnValue(tempsyserror*muondataInt.Getvalue()); muondataInt.Setname("muondataInt"); testmasspeak.RangeMassfitter(*((TH1F*)(HistSets->GetHistSet("Zmumu")->GetAnaHist("DileptonMass")->GetHist())), 87.0, 95.0); TDVnEEE ZmumuInt=testmasspeak.GetVnEIntegral(); ZmumuInt.Setname("ZmumuInt"); ZmumuInt.SetsysterrorOnValue(tempsyserror*ZmumuInt.Getvalue()); TDRunInfoSet _zewk6m_runinfo("../MCruns/zewk6m_runs_1.log"); _zewk6m_runinfo.AddFile("../MCruns/zewk6m_runs_2.log"); _zewk6m_runinfo.AddFile("../MCruns/zewk6m_runs_3.log"); _zewk6m_runinfo.AddFile("../MCruns/zewk6m_runs_4.log"); _zewk6m_runinfo.AddFile("../MCruns/zewk6m_runs_5.log"); _zewk6m_runinfo.AddFile("../MCruns/zewk6m_runs_6.log"); int goodobsvZ=(int)(_zewk6m_runinfo.GetSumTDRunInfo(MCGoodRuns)._goodobsp); TDVnEEE MuonmcEventsGenerated(goodobsvZ, 0, 0.0, 0.0, "MuonMcGen", "No. Z->mumu Generated");//MCruns //TDVnEEE MuonmcEventsGenerated(1595781, 0, 0.0, 0.0, "MuonMcGen", "No. Z->mumu Generated");//MC char buffer[100]; //printf(buffer,"%s_%d", _dilset.GetDilString().c_str(), _weighting); //_excelMassFile<GetHistSet("data")->GetAnaHist("DileptonMass")->GetHist())), 87.0, 95.0); tempsyserror=HistSets->GetHistSet("Zee")->GetAnaHist("WeightError")->GetHist()->GetMean(); //std::cout<<"tempsyserror"<GetHistSet("Zee")->GetAnaHist("Weight")->GetHist()->GetRMS(); std::cout<<"RMS"<GetHistSet("Zee")->GetAnaHist("Weight")->GetHist()->GetRMS()<GetHistSet("Zee")->GetAnaHist("Weight")->GetHist()->GetMean(); //std::cout<<"tempsyserror"<GetHistSet("Zee")->GetAnaHist("DileptonMass")->GetHist())), 87.0, 95.0); TDVnEEE ZeeInt=testmasspeak.GetVnEIntegral(); ZeeInt.Setname("ZeeInt"); ZeeInt.SetsysterrorOnValue(tempsyserror*ZeeInt.Getvalue()); TDRunInfoSet _zewk6d_runinfo("../MCruns/zewk6d_runs_1.log"); _zewk6d_runinfo.AddFile("../MCruns/zewk6d_runs_2.log"); _zewk6d_runinfo.AddFile("../MCruns/zewk6d_runs_3.log"); _zewk6d_runinfo.AddFile("../MCruns/zewk6d_runs_4.log"); _zewk6d_runinfo.AddFile("../MCruns/zewk6d_runs_5.log"); _zewk6d_runinfo.AddFile("../MCruns/zewk6d_runs_6.log"); goodobsvZ=(int)(_zewk6d_runinfo.GetSumTDRunInfo(MCGoodRuns)._goodobsp); TDVnEEE ElecmcEventsGenerated(goodobsvZ, 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated");//MCbadrun //TDVnEEE ElecmcEventsGenerated(1540477, 0, 0.0, 0.0, "ElecMcGen", "No. Z->ee Generated");//MC //char buffer[100]; sprintf(buffer,"%s_%d", _dilset.GetDilString().c_str(), _weighting); _excelDataFile<GetHistSet("Zmumu")->GetAnaHist("Weight")->GetHist()->GetMean(), subruns); thisxs.PrintValues(); } //excelplot.AddData(exceldata); //excelplot.PrintValues(); //excelplot.AddData(exceldata); //excelplot.AddData(exceldata); //excelplot.AddData(exceldata); //excelplot.AddData(exceldata); //excelplot.plot(CanvMan1); _excelDataFile<GetAverageDataVtxChange(); CorrLum.Setname("CorrectedLum"); if(print)CorrLum.PrintValues(os); TDVnEEE sigma=ActualData/CorrLum; sigma.Setname(channel); if(print)sigma.PrintValues(os); TDVnEEE sigmaCorr=sigma*1.004; sigmaCorr.Setname(channel); if(print)sigmaCorr.PrintValues(os); if(print)os<<"=============== cross section for "<GetAverageDataVtxChange(); CorrLum.Setname("CorrectedLum"); os<GetHistSet("WW")); thisset.AddHistSet(HistSets->GetHistSet("WZ")); thisset.AddHistSet(HistSets->GetHistSet("ZZ")); thisset.AddHistSet(HistSets->GetHistSet("ttbar")); thisset.AddHistSet(HistSets->GetHistSet("wgamma")); thisset.AddHistSet(HistSets->GetHistSet("fake")); TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); DY.SetDataSourcePrefix("DYll"); thisset.AddHistSet(&DY); TDHistSet BackGround(*(HistSets->GetHistSet("WW"))); BackGround+=(*(HistSets->GetHistSet("WZ"))); BackGround+=(*(HistSets->GetHistSet("ZZ"))); BackGround+=(*(HistSets->GetHistSet("ttbar"))); BackGround+=DY; BackGround+=(*(HistSets->GetHistSet("wgamma"))); BackGround+=(*(HistSets->GetHistSet("fake"))); BackGround.SetDataSourcePrefix("Background Total"); thisset.AddHistSet(&BackGround); thisset.AddHistSet(HistSets->GetHistSet("higgsww")); thisset.AddHistSet(HistSets->GetHistSet("data")); char bufferee[200]; char bufferemu[200]; char buffermumu[200]; char buffertot[200]; os<<" \\begin{table}[H]"<GetDataSource(),"Background Total"))) os<<"\\hline"<GetDataSource(),"data"))) os<<"\\hline"<GetDataSource(),"higgsww"))) os<<"\\hline"<GetDataSource(),"data")) { sprintf(bufferee,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphiee")))->GetHist()->Integral(),sqrt((*((*(thisset.GetIt()))->GetAnaIt("dilDphiee")))->GetHist()->Integral())); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphiemu")))->GetHist()->Integral(),sqrt((*((*(thisset.GetIt()))->GetAnaIt("dilDphiemu")))->GetHist()->Integral())); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphimumu")))->GetHist()->Integral(),sqrt((*((*(thisset.GetIt()))->GetAnaIt("dilDphimumu")))->GetHist()->Integral())); sprintf(buffertot,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral(),sqrt((*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral())); }else{ sprintf(bufferee,"%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphiee")))->GetHist()->Integral()); sprintf(bufferemu,"%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphiemu")))->GetHist()->Integral()); sprintf(buffermumu,"%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphimumu")))->GetHist()->Integral()); sprintf(buffertot,"%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral()); } os<<(*(thisset.GetIt()))->GetDataSource()<<" & "< TDSuperAna::getDatasets() { TDHistSetSet thisset(CanvMan1, false); thisset.AddHistSet(HistSets->GetHistSet("WW")); thisset.AddHistSet(HistSets->GetHistSet("WZ")); thisset.AddHistSet(HistSets->GetHistSet("ZZ")); thisset.AddHistSet(HistSets->GetHistSet("ttbar")); thisset.AddHistSet(HistSets->GetHistSet("wgamma")); thisset.AddHistSet(HistSets->GetHistSet("fake")); TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); DY.SetDataSourcePrefix("DYll"); thisset.AddHistSet(&DY); TDHistSet BackGround(*(HistSets->GetHistSet("WW"))); BackGround+=(*(HistSets->GetHistSet("WZ"))); BackGround+=(*(HistSets->GetHistSet("ZZ"))); BackGround+=(*(HistSets->GetHistSet("ttbar"))); BackGround+=DY; BackGround+=(*(HistSets->GetHistSet("wgamma"))); BackGround+=(*(HistSets->GetHistSet("fake"))); BackGround.SetDataSourcePrefix("Background Total"); thisset.AddHistSet(&BackGround); thisset.AddHistSet(HistSets->GetHistSet("higgsww")); thisset.AddHistSet(HistSets->GetHistSet("data")); std::vector datsetvec; datsetvec.push_back("$M_H$"); if(!(thisset.InitiateIt()))do{ datsetvec.push_back((*(thisset.GetIt()))->GetDataSource()); }while(!(thisset.IncrementIt())); return datsetvec; } std::vector TDSuperAna::getAcceptanceVector2() { std::vector normalsets; normalsets.push_back("WW"); normalsets.push_back("WZ"); normalsets.push_back("ZZ"); normalsets.push_back("ttbar"); normalsets.push_back("wgamma"); normalsets.push_back("fake"); normalsets.push_back("Zee"); normalsets.push_back("Zmumu"); normalsets.push_back("Ztautau"); std::vector DYsets; DYsets.push_back("Zee"); DYsets.push_back("Zmumu"); DYsets.push_back("Ztautau"); TDHistSetSet thisset(CanvMan1, false); thisset.AddHistSet(HistSets->GetHistSet("WW")); thisset.AddHistSet(HistSets->GetHistSet("WZ")); thisset.AddHistSet(HistSets->GetHistSet("ZZ")); thisset.AddHistSet(HistSets->GetHistSet("ttbar")); thisset.AddHistSet(HistSets->GetHistSet("wgamma")); thisset.AddHistSet(HistSets->GetHistSet("fake")); TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); DY.SetDataSourcePrefix("DYll"); thisset.AddHistSet(&DY); TDHistSet BackGround(*(HistSets->GetHistSet("WW"))); BackGround+=(*(HistSets->GetHistSet("WZ"))); BackGround+=(*(HistSets->GetHistSet("ZZ"))); BackGround+=(*(HistSets->GetHistSet("ttbar"))); BackGround+=DY; BackGround+=(*(HistSets->GetHistSet("wgamma"))); BackGround+=(*(HistSets->GetHistSet("fake"))); BackGround.SetDataSourcePrefix("Background Total"); thisset.AddHistSet(&BackGround); thisset.AddHistSet(HistSets->GetHistSet("higgsww")); thisset.AddHistSet(HistSets->GetHistSet("data")); char buffer[500]; sprintf(buffer,"%d",(int)_higgsMass); std::vector accvec; accvec.push_back(buffer); std::vector acceptvector; if(!(thisset.InitiateIt()))do{ if(!strcmp((*(thisset.GetIt()))->GetDataSource(),"data")) { sprintf(buffer,"%d",(int)(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral()); }else{ if(!strcmp((*(thisset.GetIt()))->GetDataSource(),"DYll")) { acceptvector=GetAcceptanceError(DYsets); }else if(!strcmp((*(thisset.GetIt()))->GetDataSource(),"Background Total")) { acceptvector=GetAcceptanceError(normalsets); }else{ acceptvector=GetAcceptanceError((*(thisset.GetIt()))->GetDataSource()); } sprintf(buffer,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral(), acceptvector[0]); } accvec.push_back(buffer); acceptvector.clear(); }while(!(thisset.IncrementIt())); return accvec; } std::vector TDSuperAna::getAcceptanceVector() { TDHistSetSet thisset(CanvMan1, false); thisset.AddHistSet(HistSets->GetHistSet("WW")); thisset.AddHistSet(HistSets->GetHistSet("WZ")); thisset.AddHistSet(HistSets->GetHistSet("ZZ")); thisset.AddHistSet(HistSets->GetHistSet("ttbar")); thisset.AddHistSet(HistSets->GetHistSet("wgamma")); thisset.AddHistSet(HistSets->GetHistSet("fake")); TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); DY.SetDataSourcePrefix("DYll"); thisset.AddHistSet(&DY); TDHistSet BackGround(*(HistSets->GetHistSet("WW"))); BackGround+=(*(HistSets->GetHistSet("WZ"))); BackGround+=(*(HistSets->GetHistSet("ZZ"))); BackGround+=(*(HistSets->GetHistSet("ttbar"))); BackGround+=DY; BackGround+=(*(HistSets->GetHistSet("wgamma"))); BackGround+=(*(HistSets->GetHistSet("fake"))); BackGround.SetDataSourcePrefix("Background Total"); thisset.AddHistSet(&BackGround); thisset.AddHistSet(HistSets->GetHistSet("higgsww")); thisset.AddHistSet(HistSets->GetHistSet("data")); char buffer[500]; sprintf(buffer,"%d",(int)_higgsMass); std::vector accvec; accvec.push_back(buffer); if(!(thisset.InitiateIt()))do{ //accvec.push_back((*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral()); if(!strcmp((*(thisset.GetIt()))->GetDataSource(),"data")) { sprintf(buffer,"%d",(int)(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral()); }else{ sprintf(buffer,"%2.2f$pm$%2.2f",(*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral(), sqrt((*((*(thisset.GetIt()))->GetAnaIt("dilDphi")))->GetHist()->Integral())); } accvec.push_back(buffer); }while(!(thisset.IncrementIt())); return accvec; } void TDSuperAna::likelihood(bool sim) { double Lum=GetSubAna("data")->GetAvLum(); double sLum = Lum*0.059; int lLvl=6; char filename[99]; double nAcc=0.0; nAcc=GetSubAna("higgsww")->GetAnaCutSet()->GetCutAnaCut()->Getpassed(); int events=(int)(GetSubAna("higgsww")->GetInputEvents()); double xs=0.001; //TD nominal value if(events==0) { std::cout<<"using hard coded number of events"<GetHistSet("higgsww"))); TDHistSet BkgHS(*(HistSets->GetHistSet("Zee"))); BkgHS+=(*(HistSets->GetHistSet("Zmumu"))); BkgHS+=(*(HistSets->GetHistSet("Ztautau"))); BkgHS+=(*(HistSets->GetHistSet("wgamma"))); BkgHS+=(*(HistSets->GetHistSet("ttbar"))); //BkgHS+=(*(HistSets->GetHistSet("WW"))); BkgHS+=(*(HistSets->GetHistSet("WZ"))); BkgHS+=(*(HistSets->GetHistSet("ZZ"))); BkgHS+=(*(HistSets->GetHistSet("fake"))); TDHistSet WWHS(*(HistSets->GetHistSet("WW"))); TDHistSet DATAHS(*(HistSets->GetHistSet("data"))); SigHS.ScaleErrors(SigHS.GetAnaHist("RelWeightError")->GetHist()->GetMean()); BkgHS.ScaleErrors(BkgHS.GetAnaHist("RelWeightError")->GetHist()->GetMean()); WWHS.ScaleErrors(WWHS.GetAnaHist("RelWeightError")->GetHist()->GetMean()); DATAHS.ScaleErrors(DATAHS.GetAnaHist("RelWeightError")->GetHist()->GetMean()); TH1F* h[4]; h[0]=(TH1F*)SigHS.GetAnaHist("dilDphilike")->GetHist()->Clone(); h[0]->Rebin(20); h[1]=(TH1F*)WWHS.GetAnaHist("dilDphilike")->GetHist()->Clone(); h[1]->Rebin(20); h[2]=(TH1F*)BkgHS.GetAnaHist("dilDphilike")->GetHist()->Clone(); h[2]->Rebin(20); h[3]=(TH1F*)DATAHS.GetAnaHist("dilDphilike")->GetHist()->Clone(); h[3]->Rebin(20); if(!sim) { for(int i=0; i!=4; i++) _superAnaHists->AddAnaHist(new TDAnaHist(h[i])); } int nBins = h[0]->GetNbinsX(); //int nBins = HistSets->GetHistSet("higgsww")->GetAnaHist("dilDphilike")->GetHist()->GetNbinsX(); double nWW = h[1]->Integral(); double nBG = h[2]->Integral(); double sWW=0.0, sBG=0.0, norm_hww=0.0, norm_ww=0.0, norm_bg=0.0; double data_dil[200], hww_all[200], ww_sm[200], bg_sm[200]; for (int b=0; bGetBinContent(b+1); ww_sm[b] = h[1]->GetBinContent(b+1); bg_sm[b] = h[2]->GetBinContent(b+1); norm_hww += hww_all[b]; norm_ww += ww_sm[b]; norm_bg += bg_sm[b]; } sWW = 0.09 * nWW; sBG = 0.17 * nBG; cout << " Higgs Mass = " << (int)_higgsMass << " GeV; Cut Level = " << lLvl << endl; //TD someone has included a 'using std' some where cout << " Luminosity = " << Lum << "+-" << sLum << endl; cout << " HWW A*BR = " << Hacc << "+-" << sHacc << endl; cout << " WW BG = " << nWW << "+-" << sWW << endl; cout << " otherBGs = " << nBG << "+-" << sBG << endl << endl; fitinfo << " Higgs Mass = " << (int)_higgsMass << " GeV; Cut Level = " << lLvl << std::endl; fitinfo << " Luminosity = " << Lum << "+-" << sLum << std::endl; fitinfo << " HWW A*BR = " << Hacc << "+-" << sHacc << std::endl; fitinfo << " WW BG = " << nWW << "+-" << sWW << std::endl; fitinfo << " otherBGs = " << nBG << "+-" << sBG << std::endl << std::endl; norm_hww = 1./ norm_hww; norm_ww = 1./ norm_ww; norm_bg = 1./ norm_bg; char buffer[200]; char buffer2[200]; sprintf(filename,"results/psLm_phxCorr_%3d_%d.root",(int)_higgsMass,lLvl); TFile* v = new TFile(filename,"RECREATE"); if(sim)sprintf(buffer,"simcrosseclim"); else sprintf(buffer,"crosseclim"); if(sim)sprintf(buffer2,"simulated crossection limit at 95%s CL", "%"); else sprintf(buffer2,"crossection limit at 95%s CL","%"); TH1F* xsec = new TH1F(buffer,buffer2,200,0.0,20.0); //TD memory leak! TH1F* xlik[1000]; if(sim) { _superAnaHists->AddAnaHist(new TDAnaHist(xsec) ); } TRandom* r = new TRandom(); int npseudo=1; if(sim)npseudo=1000; for (int mn=0; mnAddAnaHist(new TDAnaHist(xlik[mn])); if(sim) { for (int b=0; bGaus(nWW, sWW); int nWW_poisson = r->Poisson(nWW_gauss); for (int j=0; jGetRandom(); data_dil[int(nBins*dphi/3.1416)]++; } double nBG_gauss = r->Gaus(nBG, sBG); int nBG_poisson = r->Poisson(nBG_gauss); for (int j=0; jGetRandom(); data_dil[int(nBins*dphi/3.1416)]++; } }else{ for (int b=0; bGetBinContent(b+1); } double par[5], lik[1000], intgratlik=0.0, intpartlik=0.0, xlim; for (int j1=0; j1<1000; j1++) { lik[j1]=0.0; for (int it=0; it<100; it++) { par[0] = 0.05*(float)j1; par[1] = r->Gaus(Lum, sLum); par[2] = r->Gaus(Hacc,sHacc); par[3] = r->Gaus(nWW, sWW); par[4] = r->Gaus(nBG, sBG); double mu=0.0, loglik=0.0; for (int b=0; b0) loglik += (data_dil[b]*TMath::Log(mu) - mu - TMath::Log(TMath::Factorial((int)data_dil[b]))); } lik[j1] += TMath::Exp(loglik); } lik[j1] /= 100.0; intgratlik += lik[j1]; xlik[mn]->Fill((int)(par[0]), lik[j1]); } int j1=0; while (((float)intpartlik/(float)intgratlik)<0.95) { intpartlik += lik[j1]; xlim = 0.05*(float)j1; j1++; } xsec->Fill(xlim); //cout << " xlim[" << mn << "] = " << xlim << " pb" << endl; // fitinfo << " xlim[" << mn << "] = " << xlim << " pb" << endl; if (mn>0 && fmod((float)mn,(float)100)==0) { double xsec_median[1], x[1]; x[0]=0.5; xsec->GetQuantiles(1,xsec_median,x); // cout << " Crossec Lim Med = " << xsec_median[0] << " pb" << endl << endl; } } cout << " Cross-section Limit Mean = " << xsec->GetMean() << " pb" << endl; fitinfo << " Cross-section Limit Mean = " << xsec->GetMean() << " pb" << endl; double xsec_median[1], x[1]; x[0]=0.5; xsec->GetQuantiles(1,xsec_median,x); cout << " Crossection Limit Median = " << xsec_median[0] << " pb" << endl; cout << " Crossection Limit Median as ratio = " << xsec_median[0]/(GetHwwXS((int)_higgsMass, _stn)*0.1068) << endl << endl; if(sim) { fitinfo << "expected:"<Draw(); xsec->Write(); if(!sim)xlik[0]->Write(); //v->Write(); v->Close(); //for (int i=0; i<10; i++) f[i]->Close(); CanvMan1->NextCanvasSlot(); double lineonplot; double ymax; TLine *line; if(sim) { lineonplot=xsec->GetMean(); xsec->Draw(); ymax=xsec->GetMaximum(); } if(!sim) { lineonplot=xsec_median[0]; xlik[0]->Draw(); ymax=xlik[0]->GetMaximum(); } line = new TLine(0.0, 0.0, lineonplot, ymax); line->Draw(); } void TDSuperAna::TomLikelihood7708() { std::cout<<"TomLikelihood7708"<AddAnaHist(new TDAnaHist("likehist_7708", "toms code 7708 likelihood plot", 0, 20, 50, "", "")); char *ename[2]; ename[0]="lumerror"; ename[1]="systematic"; /* char en2[]="error2"; char en3[]="error3"; char en4[]="error4";*/ double nps_low[2]; double nps_high[2]; nps_low[0] = -0.059; nps_high[0] = 0.059; nps_low[1] = -0.17; nps_high[1] = 0.17; double WWnps_low[2]; double WWnps_high[2]; WWnps_low[0] = -0.059; WWnps_high[0] = 0.059; WWnps_low[1] = -0.09; WWnps_high[1] = 0.09; double signps_low[2]; double signps_high[2]; signps_low[0] = -0.059; signps_high[0] = 0.059; signps_low[1] = -0.06; signps_high[1] = 0.06; //TD errors above chosen to be the same as the old likelihood ones. /* nps_low[2] = -0.05;//TD ? nps_high[2] = 0.05;//TD ? nps_low[3] = 0.08;//TD ? nps_high[3] = -0.08;//TD ? nps_low[4] = 0.05;//TD ? nps_high[4] = -0.05;//TD ?*/ double lowsigma[2]; double highsigma[2]; TH1 *lowshape[2]; //TD changed from TH1F for now. TH1 *highshape[2]; //TD changed from TH1F for now. for (int i=0;i<2;i++) { lowshape[i] = 0; highshape[i] = 0; lowsigma[i] =1; highsigma[i] =1; } TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); // TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH1F * WWbkgr=(TH1F*)(TomLikeWW.GetAnaHist("dilDphi7708")->GetHist()); TH1F * bkgr=(TH1F*)(TomLikeBG.GetAnaHist("dilDphi7708")->GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * sig=(TH1F*)(TomLikeSig.GetAnaHist("dilDphi7708")->GetHist()); TH1F * data=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("dilDphi7708")->GetHist()); nps_low[1] = -0.08; nps_high[1] = 0.08; nullhyp->add_template(bkgr,1.0,2,ename,nps_low,nps_high, lowshape,lowsigma,highshape,highsigma,0,0,"Channel 1"); //TD one np for now. testhyp->add_template(bkgr,1.0,2,ename,nps_low,nps_high, lowshape,lowsigma,highshape,highsigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,2,ename,WWnps_low,WWnps_high, lowshape,lowsigma,highshape,highsigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,2,ename,WWnps_low,WWnps_high, lowshape,lowsigma,highshape,highsigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,2,ename,signps_low,signps_high, lowshape,lowsigma,highshape,highsigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); mycanvas->Print("results/tomlikeout.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); std::cout << "Getting results" << std::endl; std::cout << "ts: " << mymclimit->ts() << std::endl; std::cout << "tsbm2: " << mymclimit->tsbm2() << std::endl; std::cout << "tsbm1: " << mymclimit->tsbm1() << std::endl; std::cout << "tsbmed: " << mymclimit->tsbmed() << std::endl; std::cout << "tsbp1: " << mymclimit->tsbp1() << std::endl; std::cout << "tsbp2: " << mymclimit->tsbp2() << std::endl; std::cout << "tssm2: " << mymclimit->tssm2() << std::endl; std::cout << "tssm1: " << mymclimit->tssm1() << std::endl; std::cout << "tssmed: " << mymclimit->tssmed() << std::endl; std::cout << "tssp1: " << mymclimit->tssp1() << std::endl; std::cout << "tssp2: " << mymclimit->tssp2() << std::endl; std::cout << "CLs: " << mymclimit->cls() << std::endl; std::cout << "CLb: " << mymclimit->clb() << std::endl; std::cout << "CLsb: " << mymclimit->clsb() << std::endl; double conf95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << conf95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << conf95 << std::endl; std::cout<<"deleting Tomlike elements"<sysname.push_back(sname); ername[0] = "LUMI"; serr[0] = 0.04; sderr[0] = -0.04; wwerr[0] = 0.04; wwderr[0] = -0.04; bgerr[0] = 0.04; bgderr[0] = -0.04; // uncorrelated part of lumi error //sname = new char[strlen("CDFLUMI")+1]; //strcpy(sname,"CDFLUMI"); //chanresult->sysname.push_back(sname); ername[1] = "CDFLUMI"; serr[1] = 0.04; sderr[1] = -0.04; wwerr[1] = 0.04; wwderr[1] = -0.04; bgerr[1] = 0.04; bgderr[1] = -0.04; //sname = new char[strlen("CDFLEPTRIGGER")+1]; //strcpy(sname,"CDFLEPTRIGGER"); //chanresult->sysname.push_back(sname); ername[2] = "CDFLEPTRIGGER"; serr[2] = 0.01; sderr[2] = -0.01; wwerr[2] = 0.01; wwderr[2] = -0.01; bgerr[2] = 0.01; // only partly estimated in CDF 7708 bgderr[2] = -0.01; // only partly estimated in CDF 7708 //sname = new char[strlen("ISR")+1]; //strcpy(sname,"ISR"); //chanresult->sysname.push_back(sname); ername[3] = "ISR"; serr[3] = 0.03; sderr[3] = -0.03; wwerr[3] = 0.03; // not estimated in CDF 7708 wwderr[3] = -0.03; // not estimated in CDF 7708 bgerr[3] = 0.02; // partly estimated in CDF 7708 bgderr[3] = -0.02; // partly estimated in CDF 7708 //sname = new char[strlen("PDF")+1]; //strcpy(sname,"PDF"); //chanresult->sysname.push_back(sname); ername[4] = "PDF"; serr[4] = 0.03; sderr[4] = -0.03; wwerr[4] = 0.06; wwderr[4] = -0.06; bgerr[4] = 0.04; bgderr[4] = -0.04; //sname = new char[strlen("CDFJES")+1]; //strcpy(sname,"CDFJES"); //chanresult->sysname.push_back(sname); ername[5] = "CDFJES"; serr[5] = 0.01; sderr[5] = -0.01; wwerr[5] = 0.01; wwderr[5] = -0.01; bgerr[5] = 0.02; // mostly from fakes bgderr[5] = -0.02; // mostly from fakes //sname = new char[strlen("CDFTRKISO")+1]; //strcpy(sname,"CDFTRKISO"); //chanresult->sysname.push_back(sname); ername[6] = "CDFTRKISO"; serr[6] = 0.02; sderr[6] = -0.02; wwerr[6] = 0.02; wwderr[6] = -0.02; bgerr[6] = 0.02; // partly estimated in CDF 7708 bgderr[6] = -0.02; // partly estimated in CDF 7708 //sname = new char[strlen("ALPHAS")+1]; //strcpy(sname,"ALPHAS"); //chanresult->sysname.push_back(sname); ername[7] = "ALPHAS"; serr[7] = 0.03; sderr[7] = -0.03; wwerr[7] = 0.0; wwderr[7] = 0.0; bgerr[7] = 0.0; bgderr[7] = 0.0; //sname = new char[strlen("CDFLEPTID")+1]; //strcpy(sname,"CDFLEPTID"); //chanresult->sysname.push_back(sname); /*ername[8] = "CDFLEPTID"; serr[8] = 0.02; sderr[8] = -0.02; wwerr[8] = 0.02; wwderr[8] = -0.02; bgerr[8] = 0.02; bgderr[8] = -0.02;*/ //TD i think these are the the SF errors which I am including later, but I'm keeping these in as 0 in case I need to include them again ername[8] = "CDFLEPTID"; serr[8] = 0.00; sderr[8] = -0.00; wwerr[8] = 0.00; wwderr[8] = -0.00; bgerr[8] = 0.00; bgderr[8] = -0.00; //sname = new char[strlen("CDFFAKERATE")+1]; //strcpy(sname,"CDFFAKERATE"); //chanresult->sysname.push_back(sname); ername[9] = "CDFFAKERATE"; serr[9] = 0.0; sderr[9] = 0.0; wwerr[9] = 0.0; wwderr[9] = 0.0; bgerr[9] = 0.05; // 50% error on fakes, which are 10% of background bgderr[9] = -0.05; // 50% error on fakes, which are 10% of background //sname = new char[strlen("NNLO")+1]; //strcpy(sname,"NNLO"); //chanresult->sysname.push_back(sname); ername[10] = "NNLO"; serr[10] = 0.1; sderr[10] = -0.1; wwerr[10] = 0.0; wwderr[10] = 0.0; bgerr[10] = 0.0; bgderr[10] = 0.0; /*ername[10] = "wgamma"; serr[10] = 0.0;//0.1; sderr[10] =0.0;//-0.1; wwerr[10] = 0.0; wwderr[10] = 0.0; bgerr[10] = GetDistributedBkgrError("wgamma", "MVA_TMlpANN_cut1_ee", 0.2);//0.0; bgderr[10] = 0.0;*/ //errr... no I give up trying to write the 20% wgamma error on this function //sname = new char[strlen("CDFJETVETO")+1]; //strcpy(sname,"CDFJETVETO"); //chanresult->sysname.push_back(sname); ername[11] = "CDFJETVETO"; serr[11] = 0.0; sderr[11] = 0.0; wwerr[11] = 0.06; wwderr[11] = -0.06; bgerr[11] = 0.0; bgderr[11] = 0.0; //sname = new char[strlen("GENERATOR")+1]; //strcpy(sname,"GENERATOR"); //chanresult->sysname.push_back(sname); ername[12] = "GENERATOR"; serr[12] = 0.0; sderr[12] = 0.0; wwerr[12] = 0.04; wwderr[12] = -0.04; bgerr[12] = 0.06; bgderr[12] = -0.06; //sname = new char[strlen("CDFDYMET")+1]; //strcpy(sname,"CDFDYMET"); //chanresult->sysname.push_back(sname); ername[13] = "CDFDYMET"; serr[13] = 0.0; sderr[13] = 0.0; wwerr[13] = 0.0; wwderr[13] = 0.0; bgerr[13] = 0.05; bgderr[13] = -0.05; ername[14] = "SFERRORS"; TH1 * sigupshape[14]; TH1 * sigdownshape[14]; double sigupshapesigma[14]; double sigdownshapesigma[14]; TH1 * wwupshape[14]; TH1 * wwdownshape[14]; double wwupshapesigma[14]; double wwdownshapesigma[14]; TH1 * bgupshape[14]; TH1 * bgdownshape[14]; double bgupshapesigma[14]; double bgdownshapesigma[14]; for (int i=0;i<14;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } csm_model* nullhyp = new csm_model(); csm_model* testhyp = new csm_model(); _superAnaHists->AddAnaHist(new TDAnaHist("likehist_Detailed", "toms code Detailed likelihood plot", 0, 20, 50, "", "")); TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); // TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TDHistSet TomLikeDat(*(HistSets->GetHistSet("data"))); char buffer[200]; for(int type=DilType::TCE_TCE; type<=DilType::CMX_CMIO; ++type) //TD add each dilDphi from the diltypes separately { if(!(type==2 || type==3 || type==4 || type==15 || type==16)) //TD no pem, PHXPHX { sprintf(buffer,"Channel %s", (_dilType.Int2StringDash(type)).c_str());//TD name the channels after the diltypes //Background //nps_high[1] bgerr[14] = ((TH1F*)(TomLikeBG.GetAnaHist(((_dilType.Int2StringDash(type)) + " relweighterror").c_str())->GetHist()))->GetMean(); //nps_low[1] bgderr[14] = -bgerr[14]; //TD errors on the different dilDphi from the weightings is mean of the relative errors in their diltypes (TH1F*)(TomLikeBG.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist())->Rebin(nbin); //TD rebinned to a more healthy size nullhyp->add_template((TH1F*)(TomLikeBG.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), 1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,buffer); //TD add to null template for channel; 2 nps. testhyp->add_template((TH1F*)(TomLikeBG.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), 1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,buffer); //TD add to test template for channel; 2 nps. //WW Background wwerr[14] = ((TH1F*)(TomLikeWW.GetAnaHist(((_dilType.Int2StringDash(type)) + " relweighterror").c_str())->GetHist()))->GetMean(); wwderr[14] = -wwerr[14]; (TH1F*)(TomLikeWW.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist())->Rebin(nbin); //TD rebinned to a more healthy size nullhyp->add_template((TH1F*)(TomLikeWW.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), 1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,buffer); //TD add to null template for channel; 2 nps. testhyp->add_template((TH1F*)(TomLikeWW.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), 1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,buffer); //TD add to test template for channel; 2 nps. //Signal //nps_high[1] i serr[14] = ((TH1F*)(TomLikeSig.GetAnaHist(((_dilType.Int2StringDash(type)) + " relweighterror").c_str())->GetHist()))->GetMean(); //nps_low[1] = -nps_high[1]; //TD errors on the different dilDphi from the weightings is mean of the relative errors in their diltypes sderr[14] = -serr[14]; (TH1F*)(TomLikeSig.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist())->Rebin(nbin); testhyp->add_template((TH1F*)(TomLikeSig.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), 1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,buffer); } } csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); csm* mycsm = new csm(); for(int type=DilType::TCE_TCE; type<=DilType::CMX_CMIO; ++type) //TD add each dilDphi from the diltypes separately { sprintf(buffer,"Channel %s", (_dilType.Int2StringDash(type)).c_str()); (TH1F*)(TomLikeDat.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist())->Rebin(nbin); mycsm->set_htofit((TH1F*)(TomLikeDat.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), buffer); } mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); //TD not plotted, to not used.. //mycanvas->cd(2); //bestsignalfit->plotwithdata("Channel 1", data); //mycanvas->Print("results/tomlikeout.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); for(int type=DilType::TCE_TCE; type<=DilType::CMX_CMIO; ++type) //TD add each dilDphi from the diltypes separately { sprintf(buffer,"Channel %s", (_dilType.Int2StringDash(type)).c_str()); mymclimit->set_datahist((TH1F*)(TomLikeDat.GetAnaHist(((_dilType.Int2StringDash(type)) + " dilDphilike").c_str())->GetHist()), buffer); //mymclimit->set_datahist(data, "Channel 1"); } mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); // std::cout << "Median expected s95 in bg hypothesis: " << mymclimit->s95med() << std::endl; // fitinfo << "Median expected s95 in bg hypothesis: " << mymclimit->s95med() << std::endl; // std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "individual dilepton likelihood mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << "nbin:"<GetHistSet("data")->GetAnaHist("WWmetmag")->GetHist()->Integral(); double WW_WWmetmag_Integral=HistSets->GetHistSet("WW")->GetAnaHist("WWmetmag")->GetHist()->Integral(); std::cout<<"ratio between data and WW mc xs is"<GetDataSourceInt()!=-1) { All_WWmetmag_Integral+=(*SubAnaIt)->GetHistSet()->GetAnaHist("WWmetmag")->GetHist()->Integral(); } }while(!IncrementIt()); std::cout<<"ratio between data and total mc in WWmetmag xs is"<AddAnaHist(new TDAnaHist(buffer, buffer2, 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH1F * bkgr=(TH1F*)(TomLikeBG.GetAnaHist(thehist)->GetHist()); TH1F * WWbkgr=(TH1F*)(TomLikeWW.GetAnaHist(thehist)->GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * sig=(TH1F*)(TomLikeSig.GetAnaHist(thehist)->GetHist()); TH1F * data=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist(thehist)->GetHist()); nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); //char buffer[200]; sprintf(buffer, "results/tomlikeouttop_%s.ps", thehist); mycanvas->Print(buffer); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95; double fit95act; if(dofrequentist) { fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fit95act=mymclimit->s95(); } //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tomstyle"); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<llvv) = 0.1068 in PYTHIA vs 0.11 in HERWIG const double nEvt[10] = {1069855.0, 1063469.0, 1127915.0, 1074251.0, 1089119.0, 1051020.0, 1033214.0, 1079780.0, 1092527.0, 1093662.0}; //int main() //void pseudolimits() { int mHig=170; //char *hmas = gSystem->Getenv("HiggsMass"); //if (hmas) for (int i=0; iGetenv("LimiLevel"); if (lvll) for (int i=0; i0) sprintf(filename,"mircresults/%s_%d_phxCorr.root",datset[i],mHig); else sprintf(filename,"mircresults/%s%d_%d_phxCorr.root",datset[i],mHig,mHig); f[i] = new TFile(filename,"READ"); } sprintf(filename,"dildPhi_all_%d",lLvl); TH2F* g = (TH2F*)f[0]->Get("GC")->Clone(); //TD what is this? double nAcc=0.0; for (int j=0; j<26; j++) nAcc += g->GetBinContent(lLvl+4,j+1); //TD what is this? double Hacc = 0.1068 * nAcc / nEvt[((int)_higgsMass-110)/10]; //TD where do the n Evt come from? //double Hacc = nAcc / nEvt[((int)_higgsMass-110)/10]; // double sHacc = 0.1068 * 0.06 * Hacc; double sHacc = 0.06 * Hacc; for (int i=0; i<9; i++) { h[i] = (TH1F*)f[i]->Get(filename)->Clone(); h[i]->Rebin(20); if (i>2 && i<8) h[2]->Add(h[i]); } int nBins = h[0]->GetNbinsX(); //int nBins = HistSets->GetHistSet("higgsww")->GetAnaHist("dilDphilike")->GetHist()->GetNbinsX(); double nWW = h[1]->Integral(); double nBG = h[2]->Integral(); double sWW=0.0, sBG=0.0, norm_hww=0.0, norm_ww=0.0, norm_bg=0.0; double data_dil[200], hww_all[200], ww_sm[200], bg_sm[200]; for (int b=0; bGetBinContent(b+1); ww_sm[b] = h[1]->GetBinContent(b+1); bg_sm[b] = h[2]->GetBinContent(b+1); norm_hww += hww_all[b]; norm_ww += ww_sm[b]; norm_bg += bg_sm[b]; } sWW = 0.09 * nWW; sBG = 0.17 * nBG; cout << " Higgs Mass = " << (int)_higgsMass << " GeV; Cut Level = " << lLvl << endl; //TD someone has included a 'using std' some where cout << " Luminosity = " << Lum << "+-" << sLum << endl; cout << " HWW A*BR = " << Hacc << "+-" << sHacc << endl; cout << " WW BG = " << nWW << "+-" << sWW << endl; cout << " otherBGs = " << nBG << "+-" << sBG << endl << endl; fitinfo << " Higgs Mass = " << (int)_higgsMass << " GeV; Cut Level = " << lLvl << std::endl; fitinfo << " Luminosity = " << Lum << "+-" << sLum << std::endl; fitinfo << " HWW A*BR = " << Hacc << "+-" << sHacc << std::endl; fitinfo << " WW BG = " << nWW << "+-" << sWW << std::endl; fitinfo << " otherBGs = " << nBG << "+-" << sBG << std::endl << std::endl; norm_hww = 1./ norm_hww; norm_ww = 1./ norm_ww; norm_bg = 1./ norm_bg; char buffer[200]; char buffer2[200]; sprintf(filename,"results/psLm_phxCorr_%3d_%d.root",(int)_higgsMass,lLvl); TFile* v = new TFile(filename,"RECREATE"); if(sim)sprintf(buffer,"simcrosseclim"); else sprintf(buffer,"crosseclim"); if(sim)sprintf(buffer2,"simulated crossection limit at 95%s CL", "%"); else sprintf(buffer2,"crossection limit at 95%s CL","%"); TH1F* xsec = new TH1F(buffer,buffer2,1000,0.0,50.0); //TD memory leak! TH1F* xlik[1000]; if(sim) { _superAnaHists->AddAnaHist(new TDAnaHist(xsec) ); }else{ _superAnaHists->AddAnaHist(new TDAnaHist(xlik[0]) ); } TRandom* r = new TRandom(); int npseudo=1; if(sim)npseudo=1000; for (int mn=0; mnGaus(nWW, sWW); int nWW_poisson = r->Poisson(nWW_gauss); for (int j=0; jGetRandom(); data_dil[int(nBins*dphi/3.1416)]++; } double nBG_gauss = r->Gaus(nBG, sBG); int nBG_poisson = r->Poisson(nBG_gauss); for (int j=0; jGetRandom(); data_dil[int(nBins*dphi/3.1416)]++; } }else{ for (int b=0; bGetBinContent(b+1); } double par[5], lik[1000], intgratlik=0.0, intpartlik=0.0, xlim; for (int j1=0; j1<1000; j1++) { lik[j1]=0.0; for (int it=0; it<100; it++) { par[0] = 0.05*j1; par[1] = r->Gaus(Lum, sLum); par[2] = r->Gaus(Hacc,sHacc); par[3] = r->Gaus(nWW, sWW); par[4] = r->Gaus(nBG, sBG); double mu=0.0, loglik=0.0; for (int b=0; b0) loglik += (data_dil[b]*TMath::Log(mu) - mu); } lik[j1] += TMath::Exp(loglik); } lik[j1] /= 100.0; intgratlik += lik[j1]; xlik[mn]->Fill(par[0], lik[j1]); } int j1=0; while ((intpartlik/intgratlik)<0.95) { intpartlik += lik[j1]; xlim = 0.05*j1; j1++; } xsec->Fill(xlim); //cout << " xlim[" << mn << "] = " << xlim << " pb" << endl; // fitinfo << " xlim[" << mn << "] = " << xlim << " pb" << endl; if (mn>0 && fmod((float)mn,(float)100)==0) { double xsec_median[1], x[1]; x[0]=0.5; xsec->GetQuantiles(1,xsec_median,x); // cout << " Crossec Lim Med = " << xsec_median[0] << " pb" << endl << endl; } } cout << " Cross-section Limit Mean = " << xsec->GetMean() << " pb" << endl; fitinfo << " Cross-section Limit Mean = " << xsec->GetMean() << " pb" << endl; double xsec_median[1], x[1]; x[0]=0.5; xsec->GetQuantiles(1,xsec_median,x); cout << " Crossection Limit Median = " << xsec_median[0] << " pb" << endl; cout << " Crossection Limit Median as ratio = " << xsec_median[0]/(GetHwwXS((int)_higgsMass, _stn)*0.1068) << endl << endl; if(sim) { fitinfo << "expected:"<Draw(); xsec->Write(); if(!sim)xlik[0]->Write(); //v->Write(); v->Close(); //for (int i=0; i<10; i++) f[i]->Close(); csm_model* nullhyp = new csm_model(); csm_model* testhyp = new csm_model(); _superAnaHists->AddAnaHist(new TDAnaHist("likehist_mirctest", "toms code mirceatest likelihood plot", 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TH1F * bkgr=(TH1F*)h[2]; TH1F * WWbkgr=(TH1F*)h[1]; TH1F * sig=(TH1F*)h[0]; //sig->Scale(1.45); TH1F * data=(TH1F*)h[8]; nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); // mycanvas->Print("results/tomlikeouttop.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_mirclike"); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! // std::cout<<"deleted Tomlike elements"<AddAnaHist(new TDAnaHist("likehist_tomdata_null", "toms code tomsdata null", 0, 20, 50, "", "")); // TH1 * testhyphist=_superAnaHists->GetLast()->GetHist(); // _superAnaHists->AddAnaHist(new TDAnaHist("likehist_tomdata_test", "toms code tomsdata test", 0, 20, 50, "", "")); // TH1 * nullhyphist=_superAnaHists->GetLast()->GetHist(); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TFile f("/home/tdavies/tomlike/tomtar/cdfhww360.root"); TH1F * bkgr=(TH1F*)f.Get("bg_170;1"); TH1F * WWbkgr=(TH1F*)f.Get("ww_170;1"); TH1F * sig=(TH1F*)f.Get("hww_170;1"); sig->Scale(1.45); TH1F * data=(TH1F*)f.Get("data_170;1"); nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); // mycanvas->Print("results/tomlikeouttop.ps"); mclimit_csm* mymclimit = new mclimit_csm(); // mymclimit->tshists(nullhyphist, testhyphist); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); //mymclimit->tshists(nullhyphist, testhyphist); mymclimit->run_pseudoexperiments(); //fitinfo<<"nullhyphist entries:"<GetEntries()<s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); double scalefac=GetHwwXS((int)_higgsMass, _stn)/0.1068; std::vector theBayeslist=mymclimit->Getcslist(); for(std::vector::iterator it=theBayeslist.begin(); it!=theBayeslist.end(); ++it) { std::cout<<"filling: "<<*it<GetLast()->GetHist()->Fill((*it)*scalefac); } // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tomstylehisdata"); likefile << _higgsMass << " " << sflimit*scalefac << " " << sm2*scalefac << " " << sm1*scalefac << " " << smed*scalefac << " " << sp1*scalefac << " " << sp2*scalefac << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! // std::cout<<"deleted Tomlike elements"<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * bkgree=(TH1F*)(TomLikeBG.GetAnaHist("dilDphiee")->GetHist()); TH1F * WWbkgree=(TH1F*)(TomLikeWW.GetAnaHist("dilDphiee")->GetHist()); TH1F * sigee=(TH1F*)(TomLikeSig.GetAnaHist("dilDphiee")->GetHist()); TH1F * dataee=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("dilDphiee")->GetHist()); TH1F * bkgremu=(TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu")->GetHist()); TH1F * WWbkgremu=(TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu")->GetHist()); TH1F * sigemu=(TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu")->GetHist()); TH1F * dataemu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("dilDphiemu")->GetHist()); TH1F * bkgrmumu=(TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu")->GetHist()); TH1F * WWbkgrmumu=(TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu")->GetHist()); TH1F * sigmumu=(TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu")->GetHist()); TH1F * datamumu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("dilDphimumu")->GetHist()); std::cout<<"TomLikelihoodemu()"<AddAnaHist(new TDAnaHist("likehist_emu", "toms code dilphi emu likelihood plot", 0, 20, 50, "", "")); _superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_10", "toms code dilphi emu likelihood plot_10", 0, 10, 50, "", "")); //_superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_xs", "toms code dilphi emu likelihood plot withxs", 0, 20, 50, "", "")); char *ername[15]; double serr_mumu[15]; double sderr_mumu[15]; double wwerr_mumu[15]; double wwderr_mumu[15]; double bgerr_mumu[15]; double bgderr_mumu[15]; double serr_ee[15]; double sderr_ee[15]; double wwerr_ee[15]; double wwderr_ee[15]; double bgerr_ee[15]; double bgderr_ee[15]; double serr_emu[15]; double sderr_emu[15]; double wwerr_emu[15]; double wwderr_emu[15]; double bgerr_emu[15]; double bgderr_emu[15]; //n sname = new char[strlen("LUMI")+1]; // strcpy(sname,"LUMI"); // chanresult->sysname.push_back(sname); ername[0] = "LUMI"; serr_emu[0] = serr_mumu[0] = serr_ee[0] = 0.04; sderr_emu[0] = sderr_mumu[0] = sderr_ee[0] = -0.04; wwerr_emu[0] = wwerr_mumu[0] = wwerr_ee[0] = 0.04; wwderr_emu[0] = wwderr_mumu[0] = wwderr_ee[0] = -0.04; bgerr_emu[0] = bgerr_mumu[0] = bgerr_ee[0] = 0.04; bgderr_emu[0] = bgderr_mumu[0] = bgderr_ee[0] = -0.04; // uncorrelated part of lumi error //sname = new char[strlen("CDFLUMI")+1]; //strcpy(sname,"CDFLUMI"); //chanresult->sysname.push_back(sname); ername[1] = "CDFLUMI"; serr_emu[1] = serr_mumu[1] = serr_ee[1] = 0.04; sderr_emu[1] = sderr_mumu[1] = sderr_ee[1] = -0.04; wwerr_emu[1] = wwerr_mumu[1] = wwerr_ee[1] = 0.04; wwderr_emu[1] = wwderr_mumu[1] = wwderr_ee[1] = -0.04; bgerr_emu[1] = bgerr_mumu[1] = bgerr_ee[1] = 0.04; bgderr_emu[1] = bgderr_mumu[1] = bgderr_ee[1] = -0.04; std::vector sexoscale; if(_sexo)sexoscale=GetemuBkgDYError(0.05); //This will now be the sexo8/9t scaling error. //sname = new char[strlen("CDFLEPTRIGGER")+1]; //strcpy(sname,"CDFLEPTRIGGER"); //chanresult->sysname.push_back(sname); ername[2] = "CDFLEPTRIGGER"; serr_emu[2] = serr_mumu[2] = serr_ee[2] = 0.00;//0.01; sderr_emu[2] = sderr_mumu[2] = sderr_ee[2] = 0.00;//-0.01; wwerr_emu[2] = wwerr_mumu[2] = wwerr_ee[2] = 0.00;//0.01; wwderr_emu[2] = wwderr_mumu[2] = wwderr_ee[2] = 0.00;//-0.01; if(_sexo) { bgerr_emu[2] = sexoscale[2]; bgerr_mumu[2] = sexoscale[3]; bgerr_ee[2] = sexoscale[1]; //0.05; bgderr_emu[2] = -sexoscale[2]; bgderr_mumu[2] = -sexoscale[3]; bgderr_ee[2] = -sexoscale[1];//-0.05; }else{ bgerr_emu[2] = bgerr_mumu[2] = bgerr_ee[2] = 0.00; bgderr_emu[2] = bgderr_mumu[2] = bgderr_ee[2] = -0.00; } //sname = new char[strlen("ISR")+1]; //strcpy(sname,"ISR"); //chanresult->sysname.push_back(sname); ername[3] = "ISR"; serr_emu[3] = serr_mumu[3] = serr_ee[3] = 0.0;// 0.03; //TD now in shape error hists. sderr_emu[3] = sderr_mumu[3] = sderr_ee[3] = 0.0;//-0.03; wwerr_emu[3] = wwerr_mumu[3] = wwerr_ee[3] = 0.0;//0.03; // not estimated in CDF 7708 wwderr_emu[3] = wwderr_mumu[3] = wwderr_ee[3] = 0.0;//-0.03; // not estimated in CDF 7708 bgerr_emu[3] = bgerr_mumu[3] = bgerr_ee[3] = 0.0;//0.02; // partly estimated in CDF 7708 bgderr_emu[3] = bgderr_mumu[3] = bgderr_ee[3] = 0.0;//-0.02; // partly estimated in CDF 7708 //sname = new char[strlen("PDF")+1]; //strcpy(sname,"PDF"); //chanresult->sysname.push_back(sname); ername[4] = "PDF"; serr_emu[4] = serr_mumu[4] = serr_ee[4] = 0.0;//0.03; sderr_emu[4] = sderr_mumu[4] = sderr_ee[4] = 0.0;//-0.03; wwerr_emu[4] = wwerr_mumu[4] = wwerr_ee[4] = 0.0;//0.06; wwderr_emu[4] = wwderr_mumu[4] = wwderr_ee[4] = 0.0;//-0.06; bgerr_emu[4] = bgerr_mumu[4] = bgerr_ee[4] = 0.0;//0.04; bgderr_emu[4] = bgderr_mumu[4] = bgderr_ee[4] = 0.0;//-0.04; //sname = new char[strlen("CDFJES")+1]; //strcpy(sname,"CDFJES"); //chanresult->sysname.push_back(sname); ername[5] = "CDFJES"; serr_emu[5] = serr_mumu[5] = serr_ee[5] = 0.0;//0.01; sderr_emu[5] = sderr_mumu[5] = sderr_ee[5] = 0.0;//-0.01; wwerr_emu[5] = wwerr_mumu[5] = wwerr_ee[5] = 0.0;//0.01; wwderr_emu[5] = wwderr_mumu[5] = wwderr_ee[5] = 0.0;//-0.01; bgerr_emu[5] = bgerr_mumu[5] = bgerr_ee[5] = 0.0;//0.02; // mostly from fakes bgderr_emu[5] = bgderr_mumu[5] = bgderr_ee[5] = 0.0;//-0.02; // mostly from fakes //sname = new char[strlen("CDFTRKISO")+1]; //strcpy(sname,"CDFTRKISO"); //chanresult->sysname.push_back(sname); ername[6] = "CDFTRKISO"; serr_emu[6] = serr_mumu[6] = serr_ee[6] = 0.00;//0.02; sderr_emu[6] = sderr_mumu[6] = sderr_ee[6] = 0.00;//-0.02; wwerr_emu[6] = wwerr_mumu[6] = wwerr_ee[6] = 0.00;//0.02; wwderr_emu[6] = wwderr_mumu[6] = wwderr_ee[6] = 0.00;//-0.02; bgerr_emu[6] = bgerr_mumu[6] = bgerr_ee[6] = 0.00;//0.02; // partly estimated in CDF 7708 bgderr_emu[6] = bgderr_mumu[6] = bgderr_ee[6] = 0.00;//-0.02; // partly estimated in CDF 7708 //sname = new char[strlen("ALPHAS")+1]; //strcpy(sname,"ALPHAS"); //chanresult->sysname.push_back(sname); ername[7] = "ALPHAS"; serr_emu[7] = serr_mumu[7] = serr_ee[7] = 0.0;//0.03; //we decided these were not valiid on the signal going into the likelihood fit sderr_emu[7] = sderr_mumu[7] = sderr_ee[7] = 0.0;//-0.03; wwerr_emu[7] = wwerr_mumu[7] = wwerr_ee[7] = 0.0; wwderr_emu[7] = wwderr_mumu[7] = wwderr_ee[7] = 0.0; bgerr_emu[7] = bgerr_mumu[7] = bgerr_ee[7] = 0.0; bgderr_emu[7] = bgderr_mumu[7] = bgderr_ee[7] = 0.0; //sname = new char[strlen("CDFLEPTID")+1]; //strcpy(sname,"CDFLEPTID"); //chanresult->sysname.push_back(sname); ername[8] = "CDFLEPTID"; serr_emu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); serr_mumu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); serr_ee[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; sderr_emu[8] = -serr_emu[8]; sderr_mumu[8] = -serr_mumu[8]; sderr_ee[8] = -serr_ee[8]; //-0.02; wwerr_emu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); wwerr_mumu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); wwerr_ee[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; wwderr_emu[8] = -wwerr_emu[8]; wwderr_mumu[8] = -wwerr_mumu[8]; wwderr_ee[8] = -wwerr_ee[8];//-0.02; bgerr_emu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); bgerr_mumu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); bgerr_ee[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; bgderr_emu[8] = -bgerr_emu[8]; bgderr_mumu[8] = -bgerr_mumu[8]; bgderr_ee[8] = -bgerr_ee[8];//-0.02; std::cout<sysname.push_back(sname); ername[9] = "CDFFAKERATE"; serr_emu[9] = serr_mumu[9] = serr_ee[9] = 0.0; sderr_emu[9] = sderr_mumu[9] = sderr_ee[9] = 0.0; wwerr_emu[9] = wwerr_mumu[9] = wwerr_ee[9] = 0.0; wwderr_emu[9] = wwderr_mumu[9] = wwderr_ee[9] = 0.0; bgerr_emu[9] = bgerr_mumu[9] = bgerr_ee[9] = 0.0; //TD fake in shape hists 0.05; // 50% error on fakes, which are 10% of background bgderr_emu[9] = bgderr_mumu[9] = bgderr_ee[9] = 0.0;//TD fake in shape hists -0.05; // 50% error on fakes, which are 10% of background //sname = new char[strlen("NNLO")+1]; //strcpy(sname,"NNLO"); //chanresult->sysname.push_back(sname); /*ername[10] = "NNLO"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.1; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = -0.1; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; bgerr_emu[10] = bgerr_mumu[10] = bgerr_ee[10] = 0.0; bgderr_emu[10] = bgderr_mumu[10] = bgderr_ee[10] = 0.0;*/ //I have poached error #10 to make it into the wgamma error. ername[10] = "wgamma"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.0; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = 0.0; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; //GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); bgerr_emu[10] = GetDistributedBkgrError("wgamma", "dilDphiemu", 0.2); bgerr_mumu[10] = GetDistributedBkgrError("wgamma", "dilDphimumu", 0.2); bgerr_ee[10] = GetDistributedBkgrError("wgamma", "dilDphiee", 0.2); bgderr_emu[10] = -bgerr_emu[10]; bgderr_mumu[10] = -bgerr_mumu[10]; bgderr_ee[10] = -bgerr_ee[10]; //GetDistributedBkgrError("wgamma", "MVA_TMlpANN_cut1_ee", 0.2); //sname = new char[strlen("CDFJETVETO")+1]; //strcpy(sname,"CDFJETVETO"); //chanresult->sysname.push_back(sname); ername[11] = "CDFJETVETO"; serr_emu[11] = serr_mumu[11] = serr_ee[11] = 0.0; sderr_emu[11] = sderr_mumu[11] = sderr_ee[11] = 0.0; wwerr_emu[11] = wwerr_mumu[11] = wwerr_ee[11] = 0.06; wwderr_emu[11] = wwderr_mumu[11] = wwderr_ee[11] = -0.06; bgerr_emu[11] = bgerr_mumu[11] = bgerr_ee[11] = 0.0; bgderr_emu[11] = bgderr_mumu[11] = bgderr_ee[11] = 0.0; //sname = new char[strlen("GENERATOR")+1]; //strcpy(sname,"GENERATOR"); //chanresult->sysname.push_back(sname); ername[12] = "GENERATOR"; serr_emu[12] = serr_mumu[12] = serr_ee[12] = 0.0; sderr_emu[12] = sderr_mumu[12] = sderr_ee[12] = 0.0; wwerr_emu[12] = wwerr_mumu[12] = wwerr_ee[12] = 0.04; wwderr_emu[12] = wwderr_mumu[12] = wwderr_ee[12] = -0.04; bgerr_emu[12] = bgerr_mumu[12] = bgerr_ee[12] = 0.06; bgderr_emu[12] = bgderr_mumu[12] = bgderr_ee[12] = -0.06; //sname = new char[strlen("CDFDYMET")+1]; //strcpy(sname,"CDFDYMET"); //chanresult->sysname.push_back(sname); std::vector DYerrors=GetemuBkgDYError(0.3); ername[13] = "CDFDYMET"; serr_emu[13] = serr_mumu[13] = serr_ee[13] = 0.0; sderr_emu[13] = sderr_mumu[13] = sderr_ee[13] = 0.0; wwerr_emu[13] = wwerr_mumu[13] = wwerr_ee[13] = 0.0; wwderr_emu[13] = wwderr_mumu[13] = wwderr_ee[13] = 0.0; bgerr_emu[13] = DYerrors[2]; bgerr_mumu[13] = DYerrors[3]; bgerr_ee[13] = DYerrors[1]; //0.05; bgderr_emu[13] = -DYerrors[2]; bgderr_mumu[13] = -DYerrors[3]; bgderr_ee[13] = -DYerrors[1];//-0.05; std::cout<<"DY errors in emu Style: ee:"<GetHist()); sigdownshape_ee[5] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_JESdn")->GetHist()); sigupshapesigma_ee[5] = 1; sigdownshapesigma_ee[5] = -1; wwupshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_JESup")->GetHist()); wwdownshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_JESdn")->GetHist()); wwupshapesigma_ee[5] = 1; wwdownshapesigma_ee[5] = -1; bgupshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_JESup")->GetHist()); bgdownshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_JESdn")->GetHist()); bgupshapesigma_ee[5] = 1; bgdownshapesigma_ee[5] = -1; sigupshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_JESup")->GetHist()); sigdownshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_JESdn")->GetHist()); sigupshapesigma_emu[5] = 1; sigdownshapesigma_emu[5] = -1; wwupshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_JESup")->GetHist()); wwdownshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_JESdn")->GetHist()); wwupshapesigma_emu[5] = 1; wwdownshapesigma_emu[5] = -1; bgupshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_JESup")->GetHist()); bgdownshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_JESdn")->GetHist()); bgupshapesigma_emu[5] = 1; bgdownshapesigma_emu[5] = -1; sigupshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_JESup")->GetHist()); sigdownshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_JESdn")->GetHist()); sigupshapesigma_mumu[5] = 1; sigdownshapesigma_mumu[5] = -1; wwupshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_JESup")->GetHist()); wwdownshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_JESdn")->GetHist()); wwupshapesigma_mumu[5] = 1; wwdownshapesigma_mumu[5] = -1; bgupshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_JESup")->GetHist()); bgdownshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_JESdn")->GetHist()); bgupshapesigma_mumu[5] = 1; bgdownshapesigma_mumu[5] = -1; //TD Lepton Energy Scale Shape Errors sigupshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_LESup")->GetHist()); sigdownshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_LESdn")->GetHist()); sigupshapesigma_ee[14] = 1; sigdownshapesigma_ee[14] = -1; wwupshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_LESup")->GetHist()); wwdownshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_LESdn")->GetHist()); wwupshapesigma_ee[14] = 1; wwdownshapesigma_ee[14] = -1; bgupshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_LESup")->GetHist()); bgdownshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_LESdn")->GetHist()); bgupshapesigma_ee[14] = 1; bgdownshapesigma_ee[14] = -1; sigupshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_LESup")->GetHist()); sigdownshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_LESdn")->GetHist()); sigupshapesigma_emu[14] = 1; sigdownshapesigma_emu[14] = -1; wwupshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_LESup")->GetHist()); wwdownshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_LESdn")->GetHist()); wwupshapesigma_emu[14] = 1; wwdownshapesigma_emu[14] = -1; bgupshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_LESup")->GetHist()); bgdownshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_LESdn")->GetHist()); bgupshapesigma_emu[14] = 1; bgdownshapesigma_emu[14] = -1; sigupshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_LESup")->GetHist()); sigdownshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_LESdn")->GetHist()); sigupshapesigma_mumu[14] = 1; sigdownshapesigma_mumu[14] = -1; wwupshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_LESup")->GetHist()); wwdownshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_LESdn")->GetHist()); wwupshapesigma_mumu[14] = 1; wwdownshapesigma_mumu[14] = -1; bgupshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_LESup")->GetHist()); bgdownshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_LESdn")->GetHist()); bgupshapesigma_mumu[14] = 1; bgdownshapesigma_mumu[14] = -1; //TD PDF Shape errors sigupshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_PDFup")->GetHist()); sigdownshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_PDFdn")->GetHist()); sigupshapesigma_ee[4] = 1; sigdownshapesigma_ee[4] = -1; wwupshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_PDFup")->GetHist()); wwdownshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_PDFdn")->GetHist()); wwupshapesigma_ee[4] = 1; wwdownshapesigma_ee[4] = -1; bgupshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_PDFup")->GetHist()); bgdownshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_PDFdn")->GetHist()); bgupshapesigma_ee[4] = 1; bgdownshapesigma_ee[4] = -1; sigupshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_PDFup")->GetHist()); sigdownshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_PDFdn")->GetHist()); sigupshapesigma_emu[4] = 1; sigdownshapesigma_emu[4] = -1; wwupshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_PDFup")->GetHist()); wwdownshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_PDFdn")->GetHist()); wwupshapesigma_emu[4] = 1; wwdownshapesigma_emu[4] = -1; bgupshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_PDFup")->GetHist()); bgdownshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_PDFdn")->GetHist()); bgupshapesigma_emu[4] = 1; bgdownshapesigma_emu[4] = -1; sigupshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_PDFup")->GetHist()); sigdownshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_PDFdn")->GetHist()); sigupshapesigma_mumu[4] = 1; sigdownshapesigma_mumu[4] = -1; wwupshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_PDFup")->GetHist()); wwdownshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_PDFdn")->GetHist()); wwupshapesigma_mumu[4] = 1; wwdownshapesigma_mumu[4] = -1; bgupshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_PDFup")->GetHist()); bgdownshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_PDFdn")->GetHist()); bgupshapesigma_mumu[4] = 1; bgdownshapesigma_mumu[4] = -1; //TD ISR Shape errors sigupshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_ISRup")->GetHist()); sigdownshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_ISRdn")->GetHist()); sigupshapesigma_ee[3] = 1; sigdownshapesigma_ee[3] = -1; wwupshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_ISRup")->GetHist()); wwdownshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_ISRdn")->GetHist()); wwupshapesigma_ee[3] = 1; wwdownshapesigma_ee[3] = -1; bgupshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_ISRup")->GetHist()); bgdownshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_ISRdn")->GetHist()); bgupshapesigma_ee[3] = 1; bgdownshapesigma_ee[3] = -1; sigupshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_ISRup")->GetHist()); sigdownshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_ISRdn")->GetHist()); sigupshapesigma_emu[3] = 1; sigdownshapesigma_emu[3] = -1; wwupshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_ISRup")->GetHist()); wwdownshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_ISRdn")->GetHist()); wwupshapesigma_emu[3] = 1; wwdownshapesigma_emu[3] = -1; bgupshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_ISRup")->GetHist()); bgdownshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_ISRdn")->GetHist()); bgupshapesigma_emu[3] = 1; bgdownshapesigma_emu[3] = -1; sigupshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_ISRup")->GetHist()); sigdownshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_ISRdn")->GetHist()); sigupshapesigma_mumu[3] = 1; sigdownshapesigma_mumu[3] = -1; wwupshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_ISRup")->GetHist()); wwdownshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_ISRdn")->GetHist()); wwupshapesigma_mumu[3] = 1; wwdownshapesigma_mumu[3] = -1; bgupshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_ISRup")->GetHist()); bgdownshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_ISRdn")->GetHist()); bgupshapesigma_mumu[3] = 1; bgdownshapesigma_mumu[3] = -1; //TD Fake shape errors (there mst be a way to handle these properly) sigupshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_Fakeup")->GetHist()); sigdownshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiee_Fakedn")->GetHist()); sigupshapesigma_ee[9] = 1; sigdownshapesigma_ee[9] = -1; wwupshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_Fakeup")->GetHist()); wwdownshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiee_Fakedn")->GetHist()); wwupshapesigma_ee[9] = 1; wwdownshapesigma_ee[9] = -1; bgupshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_Fakeup")->GetHist()); bgdownshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiee_Fakedn")->GetHist()); bgupshapesigma_ee[9] = 1; bgdownshapesigma_ee[9] = -1; sigupshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_Fakeup")->GetHist()); sigdownshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphiemu_Fakedn")->GetHist()); sigupshapesigma_emu[9] = 1; sigdownshapesigma_emu[9] = -1; wwupshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_Fakeup")->GetHist()); wwdownshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphiemu_Fakedn")->GetHist()); wwupshapesigma_emu[9] = 1; wwdownshapesigma_emu[9] = -1; bgupshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_Fakeup")->GetHist()); bgdownshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphiemu_Fakedn")->GetHist()); bgupshapesigma_emu[9] = 1; bgdownshapesigma_emu[9] = -1; sigupshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_Fakeup")->GetHist()); sigdownshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("dilDphimumu_Fakedn")->GetHist()); sigupshapesigma_mumu[9] = 1; sigdownshapesigma_mumu[9] = -1; wwupshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_Fakeup")->GetHist()); wwdownshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("dilDphimumu_Fakedn")->GetHist()); wwupshapesigma_mumu[9] = 1; wwdownshapesigma_mumu[9] = -1; bgupshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_Fakeup")->GetHist()); bgdownshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("dilDphimumu_Fakedn")->GetHist()); bgupshapesigma_mumu[9] = 1; bgdownshapesigma_mumu[9] = -1; //ee channel nullhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); nullhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(sigee,1.0,15,ername,sderr_ee,serr_ee, sigdownshape_ee,sigdownshapesigma_ee,sigupshape_ee,sigupshapesigma_ee,0,1,"Channel ee"); //emu channel nullhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); nullhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(sigemu,1.0,15,ername,sderr_emu,serr_emu, sigdownshape_emu,sigdownshapesigma_emu,sigupshape_emu,sigupshapesigma_emu,0,1,"Channel emu"); //mumu channel nullhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); nullhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(sigmumu,1.0,15,ername,sderr_mumu,serr_mumu, sigdownshape_mumu,sigdownshapesigma_mumu,sigupshape_mumu,sigupshapesigma_mumu,0,1,"Channel mumu"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvasemu","Canvasemu"); mycanvas->Divide(3,2); mycanvas->cd(1); testhyp->plotwithdata("Channel ee",dataee ); mycanvas->cd(2); testhyp->plotwithdata("Channel emu",dataemu ); mycanvas->cd(3); testhyp->plotwithdata("Channel mumu",datamumu ); csm* mycsm = new csm(); mycsm->set_htofit( dataee , "Channel ee"); mycsm->set_htofit( dataemu , "Channel emu"); mycsm->set_htofit( datamumu , "Channel mumu"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(4); bestsignalfit->plotwithdata("Channel ee", dataee); mycanvas->cd(5); bestsignalfit->plotwithdata("Channel emu", dataemu); mycanvas->cd(6); bestsignalfit->plotwithdata("Channel mumu", datamumu); mycanvas->Print("results/tomlikeoutemu.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(dataee, "Channel ee"); mymclimit->set_datahist(dataemu, "Channel emu"); mymclimit->set_datahist(datamumu, "Channel mumu"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); //double fit95=mymclimit->s95med(); //std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); double scalefac=GetHwwXS((int)_higgsMass, _stn)/0.1068; std::vector theBayeslist=mymclimit->Getcslist(); for(std::vector::iterator it=theBayeslist.begin(); it!=theBayeslist.end(); ++it) { std::cout<<"filling: "<<*it<GetLast()->GetHist()->Fill((*it)*scalefac); _superAnaHists->GetAnaHist("likehist_emu")->GetHist()->Fill((*it)*scalefac); } TFile outfile("results/likefile.root", "update"); _superAnaHists->GetAnaHist("likehist_emu_10")->GetHist()->Write("likehist_emu_10",TObject::kWriteDelete); _superAnaHists->GetAnaHist("likehist_emu")->GetHist()->Write("likehist_emu",TObject::kWriteDelete); outfile.Close(); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "tom emu mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "tom emu mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tomemu_shape"); likefile << _higgsMass << " " << sflimit*scalefac << " " << sm2*scalefac << " " << sm1*scalefac << " " << smed*scalefac << " " << sp1*scalefac << " " << sp2*scalefac << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<AddAnaHist(new TDAnaHist(buffer, buffer2, 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } std::cout<<"Zee int: "<<((TH2F*)((HistSets->GetHistSet("Zee"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("Zmumu"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("Ztautau"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("wgamma"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("ttbar"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("WW"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("WZ"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("ZZ"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("fake"))->GetAnaHist(thehist)->GetHist()))->Integral()<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH2F * bkgr=(TH2F*)(TomLikeBG.GetAnaHist(thehist)->GetHist()); std::cout<<"total int: "<Integral()<GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH2F * sig=(TH2F*)(TomLikeSig.GetAnaHist(thehist)->GetHist()); TH2F * data=(TH2F*)((HistSets->GetHistSet("data"))->GetAnaHist(thehist)->GetHist()); nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); //char buffer[200]; sprintf(buffer, "results/tomlikeouttop_%s.ps", thehist); mycanvas->Print(buffer); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95; double fit95act; if(dofrequentist) { fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fit95act=mymclimit->s95(); } //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; sprintf(buffer, "results/Like_tom_%s", thehist); ofstream likefile; likefile.open(buffer); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"< TDSuperAna::GetemuBkgDYError(double DYrelerror) { std::vector theerrorvector; TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); double eeDYint=DY.GetAnaHist("dilDphiee")->GetHist()->Integral(); double emuDYint=DY.GetAnaHist("dilDphiemu")->GetHist()->Integral(); double mumuDYint=DY.GetAnaHist("dilDphimumu")->GetHist()->Integral(); double DYint=DY.GetAnaHist("TomdilDphi")->GetHist()->Integral(); double eeBGint=TomLikeBG.GetAnaHist("dilDphiee")->GetHist()->Integral(); double emuBGint=TomLikeBG.GetAnaHist("dilDphiemu")->GetHist()->Integral(); double mumuBGint=TomLikeBG.GetAnaHist("dilDphimumu")->GetHist()->Integral(); double BGint=TomLikeBG.GetAnaHist("TomdilDphi")->GetHist()->Integral(); theerrorvector.push_back(DYrelerror*DYint/BGint); theerrorvector.push_back(DYrelerror*eeDYint/eeBGint); theerrorvector.push_back(DYrelerror*emuDYint/emuBGint); theerrorvector.push_back(DYrelerror*mumuDYint/mumuBGint); /*theerrorvector.pushback(((1-DYrelerror)*DYint+BGint)/(DYint+BGint)); theerrorvector.pushback(((1-DYrelerror)*eeDYint+eeBGint)/(eeDYint+eeBGint)); theerrorvector.pushback(((1-DYrelerror)*emu:DYint+emuBGint)/(emuDYint+emuBGint)); theerrorvector.pushback(((1-DYrelerror)*mumuDYint+mumuBGint)/(mumuDYint+mumuBGint));*/ return theerrorvector; } std::vector TDSuperAna::GetemuBkgDYError(TDHistSet * BKGhists, char * totalhistname, char * eehistname, char * emuhistname, char * mumuhistname, double DYrelerror) { std::vector theerrorvector; TDHistSet DY(*(HistSets->GetHistSet("Zee"))); DY+=(*(HistSets->GetHistSet("Zmumu"))); DY+=(*(HistSets->GetHistSet("Ztautau"))); double eeDYint=DY.GetAnaHist(eehistname)->GetHist()->Integral(); double emuDYint=DY.GetAnaHist(emuhistname)->GetHist()->Integral(); double mumuDYint=DY.GetAnaHist(mumuhistname)->GetHist()->Integral(); double DYint=DY.GetAnaHist(totalhistname)->GetHist()->Integral(); double eeBGint=BKGhists->GetAnaHist(eehistname)->GetHist()->Integral(); double emuBGint=BKGhists->GetAnaHist(emuhistname)->GetHist()->Integral(); double mumuBGint=BKGhists->GetAnaHist(mumuhistname)->GetHist()->Integral(); double BGint=BKGhists->GetAnaHist(totalhistname)->GetHist()->Integral(); theerrorvector.push_back(DYrelerror*DYint/BGint); theerrorvector.push_back(DYrelerror*eeDYint/eeBGint); theerrorvector.push_back(DYrelerror*emuDYint/emuBGint); theerrorvector.push_back(DYrelerror*mumuDYint/mumuBGint); return theerrorvector; } double TDSuperAna::GetProportionalError(const char * bkgr, const char * histname, double totalrelerror) { //returns an error on a particular background given the error on the sum of the backgrounds. TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet bkgrtocalc(*(HistSets->GetHistSet(bkgr))); double integral=bkgrtocalc.GetAnaHist(histname)->GetHist()->Integral(); double BGint=TomLikeBG.GetAnaHist(histname)->GetHist()->Integral(); return totalrelerror*integral/BGint; } double TDSuperAna::GetDistributedBkgrError(char * bkgr, char * histname, double totalrelerror) { //returns the error on the non-ww background if there is an error on one of the backgrounds only TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet bkgrwitherror(*(HistSets->GetHistSet(bkgr))); double integral=bkgrwitherror.GetAnaHist(histname)->GetHist()->Integral(); double BGint=TomLikeBG.GetAnaHist(histname)->GetHist()->Integral(); return totalrelerror*integral/BGint; } double TDSuperAna::GetMaxEtCutError(ostream& os) { double MCpass=0; double MCpass20=0; double MCpass30=0; double MCpass40=0; if(!InitiateIt())do{ if((*SubAnaIt)->GetDataSourceInt()==0) { double xslum_scale=(*SubAnaIt)->GetScaleforNormalisation(); MCpass+=(*SubAnaIt)->GetEtCutEffVal(0)*xslum_scale; MCpass20+=(*SubAnaIt)->GetEtCutEffVal(1)*xslum_scale; MCpass30+=(*SubAnaIt)->GetEtCutEffVal(2)*xslum_scale; MCpass40+=(*SubAnaIt)->GetEtCutEffVal(3)*xslum_scale; } }while(!IncrementIt()); double Zeepass=GetSubAna("Zee")->GetEtCutEffVal(0); double Zeepass20=GetSubAna("Zee")->GetEtCutEffVal(1); double Zeepass30=GetSubAna("Zee")->GetEtCutEffVal(2); double Zeepass40=GetSubAna("Zee")->GetEtCutEffVal(3); double Zmumupass=GetSubAna("Zmumu")->GetEtCutEffVal(0); double Zmumupass20=GetSubAna("Zmumu")->GetEtCutEffVal(1); double Zmumupass30=GetSubAna("Zmumu")->GetEtCutEffVal(2); double Zmumupass40=GetSubAna("Zmumu")->GetEtCutEffVal(3); double Ztautaupass=GetSubAna("Ztautau")->GetEtCutEffVal(0); double Ztautaupass20=GetSubAna("Ztautau")->GetEtCutEffVal(1); double Ztautaupass30=GetSubAna("Ztautau")->GetEtCutEffVal(2); double Ztautaupass40=GetSubAna("Ztautau")->GetEtCutEffVal(3); double datapass=GetSubAna("data")->GetEtCutEffVal(0); double datapass20=GetSubAna("data")->GetEtCutEffVal(1); double datapass30=GetSubAna("data")->GetEtCutEffVal(2); double datapass40=GetSubAna("data")->GetEtCutEffVal(3); double DYpass=Zeepass+Zmumupass+Ztautaupass; double DYpass20=Zeepass20+Zmumupass20+Ztautaupass20; double DYpass30=Zeepass30+Zmumupass30+Ztautaupass30; double DYpass40=Zeepass40+Zmumupass40+Ztautaupass40; os<<"Zee before Et Cut: "<20: "<30: "<40: "<20: "<30: "<40: "<GetScaleforNormalisation(); if((*SubAnaIt)->GetDataSourceInt()==0) { // std::cout<<"DY CUT ERROR : datasource: "<<(*SubAnaIt)->GetDataSource()<GetNNDYCutEffVal(0)<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(1)<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(2)<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(3)<<" "<GetNNDYCutEffVal(0)*xslum_scale<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(1)*xslum_scale<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(2)*xslum_scale<<" "<<(*SubAnaIt)->GetNNDYCutEffVal(3)*xslum_scale<<" "<GetNNDYCutEffVal(0)*xslum_scale; MCpassstr1+=(*SubAnaIt)->GetNNDYCutEffVal(1)*xslum_scale; MCpassstr2+=(*SubAnaIt)->GetNNDYCutEffVal(2)*xslum_scale; MCpassstr3+=(*SubAnaIt)->GetNNDYCutEffVal(3)*xslum_scale; } if((*SubAnaIt)->GetDataSourceInt()==1) { HWWpass+=(*SubAnaIt)->GetNNDYCutEffVal(0)*xslum_scale; HWWpassstr1+=(*SubAnaIt)->GetNNDYCutEffVal(1)*xslum_scale; HWWpassstr2+=(*SubAnaIt)->GetNNDYCutEffVal(2)*xslum_scale; HWWpassstr3+=(*SubAnaIt)->GetNNDYCutEffVal(3)*xslum_scale; } }while(!IncrementIt()); double datapass=GetSubAna("data")->GetNNDYCutEffVal(0); double datapassstr1=GetSubAna("data")->GetNNDYCutEffVal(1); double datapassstr2=GetSubAna("data")->GetNNDYCutEffVal(2); double datapassstr3=GetSubAna("data")->GetNNDYCutEffVal(3); std::cout<<"datapass: "<str1: "<str2: "<str3: "< metsigcutnames; metsigcutnames.push_back("7708 metsig"); metsigcutnames.push_back("metsig dean"); metsigcutnames.push_back("metsig dean 20-20"); metsigcutnames.push_back("metsig special"); metsigcutnames.push_back("metsig special mll>25"); for(int cut=1; cut!=6; ++cut) { std::cout<<"cut version: "<GetDataSourceInt()==0) { //std::cout<<"DY CUT ERROR : datasource: "<<(*SubAnaIt)->GetDataSource()<GetScaleforNormalisation(); std::cout<<"xslum_scale"<GetMetSigCutEffVal(0)<<" "<<(*SubAnaIt)->GetMetSigCutEffVal(cut)<GetMetSigCutEffVal(0)*xslum_scale<<" "<<(*SubAnaIt)->GetMetSigCutEffVal(cut)*xslum_scale<GetMetSigCutEffVal(0)*xslum_scale; MCpasscut+=(*SubAnaIt)->GetMetSigCutEffVal(cut)*xslum_scale; } }while(!IncrementIt()); double datapass=GetSubAna("data")->GetMetSigCutEffVal(0); double datapasscut=GetSubAna("data")->GetMetSigCutEffVal(cut); std::cout<<"datapass: "<cut: "<GetDataSourceInt()==1) { //std::cout<<"DY CUT ERROR : datasource: "<<(*SubAnaIt)->GetDataSource()<GetScaleforNormalisation(); std::cout<<"xslum_scale"<GetMetSigCutEffVal(0)<<" "<<(*SubAnaIt)->GetMetSigCutEffVal(cut)<GetMetSigCutEffVal(0)*xslum_scale<<" "<<(*SubAnaIt)->GetMetSigCutEffVal(cut)*xslum_scale<GetMetSigCutEffVal(0)*xslum_scale; HWWpasscut+=(*SubAnaIt)->GetMetSigCutEffVal(cut)*xslum_scale; } }while(!IncrementIt()); double HWWeffcut=HWWpasscut/HWWpass; std::cout<<"HWWeff: "< errors; std::vector syserrors; std::vector datasets; os<<" \\begin{table}[H]"< normaldatasets; normaldatasets.push_back("WW"); normaldatasets.push_back("WZ"); normaldatasets.push_back("ZZ"); normaldatasets.push_back("ttbar"); normaldatasets.push_back("wgamma"); normaldatasets.push_back("fake"); for(std::vector::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { std::cout<<*it<GetHistSet((*it).c_str())->GetAnaIt("dilDphiee")))->GetHist()->Integral(),errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiemu")))->GetHist()->Integral(),errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphimumu")))->GetHist()->Integral(),errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphi")))->GetHist()->Integral(),errors[0],syserrors[0]); os<<*it<<" & "<GetHistSet("Zee")->GetAnaIt("dilDphiee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphiee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphiee")))->GetHist()->Integral(), errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphiemu")))->GetHist()->Integral(), errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphimumu")))->GetHist()->Integral(), errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphi")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphi")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphi")))->GetHist()->Integral(), errors[0],syserrors[0]); os<<"Drell Yan"<<" & "<::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { integralee+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiee")))->GetHist()->Integral(); integralemu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiemu")))->GetHist()->Integral(); integralmumu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphimumu")))->GetHist()->Integral(); integral+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphi")))->GetHist()->Integral(); } sprintf(bufferee,"%2.2f$pm$%2.2f$pm$%2.2f",integralee,errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",integralemu,errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",integralmumu,errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",integral,errors[0],syserrors[0]); os<<"Background Total"<<" & "<GetHistSet("higgsww")->GetAnaIt("dilDphiee")))->GetHist()->Integral(),errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphiemu")))->GetHist()->Integral(),errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphimumu")))->GetHist()->Integral(),errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphi")))->GetHist()->Integral(),errors[0],syserrors[0]); os<<"Higgs to WW"<<" & "<GetHistSet("data")->GetAnaIt("dilDphiee")))->GetHist()->Integral()); sprintf(bufferemu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()); sprintf(buffermumu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()); sprintf(buffertot,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphi")))->GetHist()->Integral()); os<<"data"<<" & "< errors; std::vector datasets; os<<" \\begin{table}[H]"< normaldatasets; normaldatasets.push_back("WW"); normaldatasets.push_back("WZ"); normaldatasets.push_back("ZZ"); normaldatasets.push_back("ttbar"); normaldatasets.push_back("wgamma"); normaldatasets.push_back("fake"); for(std::vector::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { std::cout<<*it<GetHistSet((*it).c_str())->GetAnaIt("dilDphiee")))->GetHist()->Integral(),errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiemu")))->GetHist()->Integral(),errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphimumu")))->GetHist()->Integral(),errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphi")))->GetHist()->Integral(),errors[0]); os<<*it<<" & "<GetHistSet("Zee")->GetAnaIt("dilDphiee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphiee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphiee")))->GetHist()->Integral(), errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphiemu")))->GetHist()->Integral(), errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphimumu")))->GetHist()->Integral(), errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("dilDphi")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("dilDphi")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("dilDphi")))->GetHist()->Integral(), errors[0]); os<<"Drell Yan"<<" & "<::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { integralee+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiee")))->GetHist()->Integral(); integralemu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiemu")))->GetHist()->Integral(); integralmumu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphimumu")))->GetHist()->Integral(); integral+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphi")))->GetHist()->Integral(); } sprintf(bufferee,"%2.2f$pm$%2.2f",integralee,errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",integralemu,errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",integralmumu,errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",integral,errors[0]); os<<"Background Total"<<" & "<GetHistSet("higgsww")->GetAnaIt("dilDphiee")))->GetHist()->Integral(),errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphiemu")))->GetHist()->Integral(),errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphimumu")))->GetHist()->Integral(),errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("dilDphi")))->GetHist()->Integral(),errors[0]); os<<"Higgs to WW"<<" & "<GetHistSet("data")->GetAnaIt("dilDphiee")))->GetHist()->Integral()); sprintf(bufferemu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphiemu")))->GetHist()->Integral()); sprintf(buffermumu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphimumu")))->GetHist()->Integral()); sprintf(buffertot,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("dilDphi")))->GetHist()->Integral()); os<<"data"<<" & "< TDSuperAna::GetSysError(std::vector syserrorvector) { std::cout<<"GetSysError"< errorhists_ee; errorhists_ee.push_back("dilDphiee"); errorhists_ee.push_back("dilDphiee_JESup"); errorhists_ee.push_back("dilDphiee_JESdn"); errorhists_ee.push_back("dilDphiee_LESup"); errorhists_ee.push_back("dilDphiee_LESdn"); errorhists_ee.push_back("dilDphiee_ISRup"); errorhists_ee.push_back("dilDphiee_ISRdn"); errorhists_ee.push_back("dilDphiee_Fakeup"); errorhists_ee.push_back("dilDphiee_Fakedn"); errorhists_ee.push_back("dilDphiee_PDFup"); errorhists_ee.push_back("dilDphiee_PDFdn"); std::vector errorhists_emu; errorhists_emu.push_back("dilDphiemu"); errorhists_emu.push_back("dilDphiemu_JESup"); errorhists_emu.push_back("dilDphiemu_JESdn"); errorhists_emu.push_back("dilDphiemu_LESup"); errorhists_emu.push_back("dilDphiemu_LESdn"); errorhists_emu.push_back("dilDphiemu_ISRup"); errorhists_emu.push_back("dilDphiemu_ISRdn"); errorhists_emu.push_back("dilDphiemu_Fakeup"); errorhists_emu.push_back("dilDphiemu_Fakedn"); errorhists_emu.push_back("dilDphiemu_PDFup"); errorhists_emu.push_back("dilDphiemu_PDFdn"); std::vector errorhists_mumu; errorhists_mumu.push_back("dilDphimumu"); errorhists_mumu.push_back("dilDphimumu_JESup"); errorhists_mumu.push_back("dilDphimumu_JESdn"); errorhists_mumu.push_back("dilDphimumu_LESup"); errorhists_mumu.push_back("dilDphimumu_LESdn"); errorhists_mumu.push_back("dilDphimumu_ISRup"); errorhists_mumu.push_back("dilDphimumu_ISRdn"); errorhists_mumu.push_back("dilDphimumu_Fakeup"); errorhists_mumu.push_back("dilDphimumu_Fakedn"); errorhists_mumu.push_back("dilDphimumu_PDFup"); errorhists_mumu.push_back("dilDphimumu_PDFdn"); bool start=true; TDHistSet * cumulatedhists; //double eeAbsError=0; //double emuAbsError=0; //double mumuAbsError=0; //double totAbsError=0; ////double np=0.059; //double np=0.; //zero to begin with //double sumsqtotnpError=0; double _np_higgsww = 0.032; double _np_VV = 0.089; //8% for Jet veto and PDF/Q2 on sigWW; 4% on generator double _np_ttbar = 0.07; double _np_DY = 0.306; if(_sexo) _np_DY = 0.31; //elements will be total,ee,em,mm: double _n_higgsww[4] = {0.,0.,0.,0.}; double _n_VV[4] = {0.,0.,0.,0.}; double _n_ttbar[4] = {0.,0.,0.,0.}; double _n_DY[4] = {0.,0.,0.,0.}; for(std::vector::iterator it=syserrorvector.begin(); it!=syserrorvector.end(); it++) { std::cout<<"in loop"<<(*it)<< std::endl; if(start) { cumulatedhists = new TDHistSet(*(HistSets->GetHistSet((*it).c_str()))); start=false; }else{ (*cumulatedhists)+=(*(HistSets->GetHistSet((*it).c_str()))); } //np=0.; //zero to begin with //if(*it=="higgsww"){np=0.032;} //else if(*it=="WW"){np=0.089;}//{np=0.059;} //8% for Jet veto and PDF/Q2 on sigWW; 4% on generator //else if(*it=="ttbar"){np=0.07;} //else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){np=0.306; if(_sexo)np=0.31;}//212;} // deal with process-specific uncertainties; fully correlated between ee,em,mm: // also fully correlated between ee,mm,tt for DY, and between WW,WZ,ZZ for diboson. if(*it=="higgsww"){ _n_higgsww[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral()); _n_higgsww[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral()); _n_higgsww[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); _n_higgsww[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); } else if(*it=="ttbar"){ _n_ttbar[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral()); _n_ttbar[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral()); _n_ttbar[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); _n_ttbar[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); } else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){ _n_DY[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral()); _n_DY[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral()); _n_DY[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); _n_DY[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); } else if(*it=="WW" || *it=="WZ" || *it=="ZZ"){ _n_VV[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral()); _n_VV[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral()); _n_VV[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); _n_VV[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); } //std::cout<<"np:"<GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral())*np; //emuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral())*np; //mumuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral())*np; //sumsqtotnpError+=(np)*(np); //(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral())*np; //sumsqtotnpError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral())*np; //std::cout<<"np cumulative Abs errors"<GetAnaHist("dilDphi") ->GetHist()))->Integral()); totevents[1]=(((TH1F*)(cumulatedhists->GetAnaHist("dilDphiee") ->GetHist()))->Integral()); totevents[2]=(((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu") ->GetHist()))->Integral()); totevents[3]=(((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); for(int i=0; i<4; i++){ if(totevents[i]>0) non_shape_fracerrs[i]=non_shape_errs[i]/totevents[i]; } std::cout<<"non-shape errs: "<GetAnaHist("dilDphiee")->GetHist()))->Integral(); double emunpError=emuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu")->GetHist()))->Integral(); double mumunpError=mumuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral();*/ //double totnpError=sqrt(sumsqtotnpError);//totAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphi")->GetHist()))->Integral(); //if(eenpError!=eenpError)eenpError=0; //if(emunpError!=emunpError)emunpError=0; //if(mumunpError!=mumunpError)mumunpError=0; //if(totnpError!=totnpError)totnpError=0; //std::cout<<"np totalerrors: "<GetAnaHist("dilDphi") ->GetHist()))->Integral())*totError.AddQuadRelativeError(),2)); eeerrsum+= (pow((((TH1F*)(cumulatedhists->GetAnaHist("dilDphiee") ->GetHist()))->Integral())*eeError.AddQuadRelativeError(),2)); emuerrsum+= (pow((((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu") ->GetHist()))->Integral())*emuError.AddQuadRelativeError(),2)); mumuerrsum+=(pow((((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral())*mumuError.AddQuadRelativeError(),2)); std::cout<<"shape errors: "<GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean(); double relLepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); double relLepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); double relLepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean(); double LepError_ee=( (TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("dilDphiee") ->GetHist()))->Integral()); double LepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu") ->GetHist()))->Integral()); double LepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); double LepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("dilDphi")->GetHist()))->Integral()); eeerrsum+=(LepError_ee*LepError_ee); emuerrsum+=(LepError_emu*LepError_emu); mumuerrsum+=(LepError_mumu*LepError_mumu); toterrsum+=(LepError*LepError); std::cout<<"lepIDtrigisolerrors: (rel) "< errorsback; //errorsback.push_back(sqrt(toterrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphi")->GetHist()))->Integral()); //errorsback.push_back(sqrt(eeerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphiee")->GetHist()))->Integral()); //errorsback.push_back(sqrt(emuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); //errorsback.push_back(sqrt(mumuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); // we are already dealing in n events, not fractional uncertainties: errorsback.push_back(sqrt(toterrsum)); errorsback.push_back(sqrt(eeerrsum)); errorsback.push_back(sqrt(emuerrsum)); errorsback.push_back(sqrt(mumuerrsum)); std::cout<<"totalrelerrors: "< TDSuperAna::GetSysError(std::vector syserrorvector) { std::cout<<"GetSysError"< errorhists_ee; errorhists_ee.push_back("dilDphiee"); errorhists_ee.push_back("dilDphiee_JESup"); errorhists_ee.push_back("dilDphiee_JESdn"); errorhists_ee.push_back("dilDphiee_LESup"); errorhists_ee.push_back("dilDphiee_LESdn"); errorhists_ee.push_back("dilDphiee_ISRup"); errorhists_ee.push_back("dilDphiee_ISRdn"); errorhists_ee.push_back("dilDphiee_Fakeup"); errorhists_ee.push_back("dilDphiee_Fakedn"); errorhists_ee.push_back("dilDphiee_PDFup"); errorhists_ee.push_back("dilDphiee_PDFdn"); std::vector errorhists_emu; errorhists_emu.push_back("dilDphiemu"); errorhists_emu.push_back("dilDphiemu_JESup"); errorhists_emu.push_back("dilDphiemu_JESdn"); errorhists_emu.push_back("dilDphiemu_LESup"); errorhists_emu.push_back("dilDphiemu_LESdn"); errorhists_emu.push_back("dilDphiemu_ISRup"); errorhists_emu.push_back("dilDphiemu_ISRdn"); errorhists_emu.push_back("dilDphiemu_Fakeup"); errorhists_emu.push_back("dilDphiemu_Fakedn"); errorhists_emu.push_back("dilDphiemu_PDFup"); errorhists_emu.push_back("dilDphiemu_PDFdn"); std::vector errorhists_mumu; errorhists_mumu.push_back("dilDphimumu"); errorhists_mumu.push_back("dilDphimumu_JESup"); errorhists_mumu.push_back("dilDphimumu_JESdn"); errorhists_mumu.push_back("dilDphimumu_LESup"); errorhists_mumu.push_back("dilDphimumu_LESdn"); errorhists_mumu.push_back("dilDphimumu_ISRup"); errorhists_mumu.push_back("dilDphimumu_ISRdn"); errorhists_mumu.push_back("dilDphimumu_Fakeup"); errorhists_mumu.push_back("dilDphimumu_Fakedn"); errorhists_mumu.push_back("dilDphimumu_PDFup"); errorhists_mumu.push_back("dilDphimumu_PDFdn"); bool start=true; TDHistSet * cumulatedhists; double eeAbsError=0; double emuAbsError=0; double mumuAbsError=0; double totAbsError=0; double np=0.059; double sumsqtotnpError=0; for(std::vector::iterator it=syserrorvector.begin(); it!=syserrorvector.end(); it++) { std::cout<<"in loop"<<(*it)<< std::endl; if(start) { cumulatedhists = new TDHistSet(*(HistSets->GetHistSet((*it).c_str()))); start=false; }else{ (*cumulatedhists)+=(*(HistSets->GetHistSet((*it).c_str()))); } if(*it=="higgsww"){np=0.032;} else if(*it=="WW"){np=0.059;} else if(*it=="ttbar"){np=0.07;} else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){np=0.306; if(_sexo)np=0.31;}//212;} std::cout<<"np:"<GetHistSet((*it).c_str())->GetAnaHist("dilDphiee")->GetHist()))->Integral())*np; //emuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphiemu")->GetHist()))->Integral())*np; //mumuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphimumu")->GetHist()))->Integral())*np; sumsqtotnpError+=(np)*(np); //(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("dilDphi")->GetHist()))->Integral())*np; std::cout<<"np cumulative Abs errors"<GetAnaHist("dilDphiee")->GetHist()))->Integral(); double emunpError=emuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu")->GetHist()))->Integral(); double mumunpError=mumuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral();*/ /*double totnpError=sqrt(sumsqtotnpError);//totAbsError/((TH1F*)(cumulatedhists->GetAnaHist("dilDphi")->GetHist()))->Integral(); //if(eenpError!=eenpError)eenpError=0; //if(emunpError!=emunpError)emunpError=0; //if(mumunpError!=mumunpError)mumunpError=0; if(totnpError!=totnpError)totnpError=0; std::cout<<"np totalerrors: "<GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean(); double LepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); double LepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); double LepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean(); eeerrsum+=(LepError_ee*LepError_ee); emuerrsum+=(LepError_emu*LepError_emu); mumuerrsum+=(LepError_mumu*LepError_mumu); toterrsum+=(LepError*LepError); std::cout<<"lepIDtrigisolerrors: "< errorsback; errorsback.push_back(sqrt(toterrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphi")->GetHist()))->Integral()); errorsback.push_back(sqrt(eeerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphiee")->GetHist()))->Integral()); errorsback.push_back(sqrt(emuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphiemu")->GetHist()))->Integral()); errorsback.push_back(sqrt(mumuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("dilDphimumu")->GetHist()))->Integral()); std::cout<<"totalrelerrors: "< TDSuperAna::GetAcceptanceError(const char * onesubanaset) { std::vector acceptvector; acceptvector.push_back(onesubanaset); return GetAcceptanceError(acceptvector); } std::vector TDSuperAna::GetAcceptanceError(std::vector acceptvector) { double totevts[4]; double passedevts[4]; double reducedpassedevts[4]; double reductionratios[4]; double effs[4]; double errors[4]; for(int i=0; i!=4; i++) { totevts[i]=0.0; passedevts[i]=0.0; reducedpassedevts[i]=0.0; reductionratios[i]=0.0; effs[i]=0.0; errors[i]=0.0; } for(std::vector::iterator it=acceptvector.begin(); it!=acceptvector.end(); it++) { totevts[0]+=GetSubAna(*it)->GetInputEvents(); totevts[1]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_ee(); totevts[2]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_emu(); totevts[3]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_mumu(); passedevts[0]+=GetSubAna(*it)->GetAnaCutSet()->GetCutAnaCut()->Getpassed(); passedevts[1]+=GetSubAna(*it)->GetAnaCutSet_ee()->GetCutAnaCut()->Getpassed(); passedevts[2]+=GetSubAna(*it)->GetAnaCutSet_emu()->GetCutAnaCut()->Getpassed(); passedevts[3]+=GetSubAna(*it)->GetAnaCutSet_mumu()->GetCutAnaCut()->Getpassed(); reducedpassedevts[0]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphi")))->GetHist()->Integral(); //passed events with xs, lum and weight scaling reducedpassedevts[1]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiee")))->GetHist()->Integral(); reducedpassedevts[2]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphiemu")))->GetHist()->Integral(); reducedpassedevts[3]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("dilDphimumu")))->GetHist()->Integral(); std::cout<<"average weight"<<(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("Weight")))->GetHist()->GetMean()<GetScaleforNormalisation()<GetHistSet((*it).c_str())->GetAnaIt("Weight")))->GetHist()->GetMean())*(GetSubAna(*it)->GetScaleforNormalisation())< tempvec; for(int i=0; i!=4; i++) { std::cout<<"reducedpassedevts"<& SigErrs, std::vector& BkgErrs, std::vector& WWErrs) { TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); std::vector errorhists_ee; errorhists_ee.push_back("dilDphiee"); errorhists_ee.push_back("dilDphiee_JESup"); errorhists_ee.push_back("dilDphiee_JESdn"); errorhists_ee.push_back("dilDphiee_LESup"); errorhists_ee.push_back("dilDphiee_LESdn"); errorhists_ee.push_back("dilDphiee_ISRup"); errorhists_ee.push_back("dilDphiee_ISRdn"); errorhists_ee.push_back("dilDphiee_Fakeup"); errorhists_ee.push_back("dilDphiee_Fakedn"); std::vector errorhists_emu; errorhists_emu.push_back("dilDphiemu"); errorhists_emu.push_back("dilDphiemu_JESup"); errorhists_emu.push_back("dilDphiemu_JESdn"); errorhists_emu.push_back("dilDphiemu_LESup"); errorhists_emu.push_back("dilDphiemu_LESdn"); errorhists_emu.push_back("dilDphiemu_ISRup"); errorhists_emu.push_back("dilDphiemu_ISRdn"); errorhists_emu.push_back("dilDphiemu_Fakeup"); errorhists_emu.push_back("dilDphiemu_Fakedn"); std::vector errorhists_mumu; errorhists_mumu.push_back("dilDphimumu"); errorhists_mumu.push_back("dilDphimumu_JESup"); errorhists_mumu.push_back("dilDphimumu_JESdn"); errorhists_mumu.push_back("dilDphimumu_LESup"); errorhists_mumu.push_back("dilDphimumu_LESdn"); errorhists_mumu.push_back("dilDphimumu_ISRup"); errorhists_mumu.push_back("dilDphimumu_ISRdn"); errorhists_mumu.push_back("dilDphimumu_Fakeup"); errorhists_mumu.push_back("dilDphimumu_Fakedn"); TDErrorHistSet SigeeError2("Sigee2","SigeeError2", "SigeeError2", CanvMan1, TomLikeSig, errorhists_ee); TDErrorHistSet SigemuError2("Sigemu2","SigemuError2", "SigemuError2", CanvMan1, TomLikeSig, errorhists_emu); TDErrorHistSet SigmumuError2("Sigmumu2","SigmumuError2", "SigmumuError2", CanvMan1, TomLikeSig, errorhists_mumu); TDErrorHistSet BkgeeError2("Bkgee2","BkgeeError2", "BkgeeError2", CanvMan1, TomLikeBG, errorhists_ee); TDErrorHistSet BkgemuError2("Bkgemu2","BkgemuError2", "BkgemuError2", CanvMan1, TomLikeBG, errorhists_emu); TDErrorHistSet BkgmumuError2("Bkgmumu2","BkgmumuError2", "BkgmumuError2", CanvMan1, TomLikeBG, errorhists_mumu); TDErrorHistSet WWeeError2("WWee2","WWeeError2", "WWeeError2", CanvMan1, TomLikeWW, errorhists_ee); TDErrorHistSet WWemuError2("WWemu2","WWemuError2", "WWemuError2", CanvMan1, TomLikeWW, errorhists_emu); TDErrorHistSet WWmumuError2("WWmumu2","WWmumuError2", "WWmumuError2", CanvMan1, TomLikeWW, errorhists_mumu); TDErrorHistSet SigError(SigeeError2); SigError+=SigemuError2; SigError+=SigmumuError2; TDErrorHistSet BkgError(BkgeeError2); BkgError+=BkgemuError2; BkgError+=BkgmumuError2; TDErrorHistSet WWError(WWeeError2); WWError+=WWemuError2; WWError+=WWmumuError2; SigErrs=SigError.RelativeErrors(); BkgErrs=BkgError.RelativeErrors(); WWErrs=WWError.RelativeErrors(); double LepErrorSig=((*((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_ee")->GetHist())))) .GetMean(); SigErrs.push_back(LepErrorSig); SigErrs.push_back(-LepErrorSig); double LepErrorBg=((*((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_ee")->GetHist())))) .GetMean(); BkgErrs.push_back(LepErrorBg); BkgErrs.push_back(-LepErrorBg); double LepErrorWW=((*((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_ee")->GetHist())))) .GetMean(); WWErrs.push_back(LepErrorWW); WWErrs.push_back(-LepErrorWW); } void TDSuperAna::TomLikelihoodemu_justtheerrorplots() { std::cout<<"TomLikelihoodemu_justtheerrorplots"<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); std::vector temprelerrors; std::vector errorhists_ee; errorhists_ee.push_back("dilDphiee"); errorhists_ee.push_back("dilDphiee_JESup"); errorhists_ee.push_back("dilDphiee_JESdn"); errorhists_ee.push_back("dilDphiee_LESup"); errorhists_ee.push_back("dilDphiee_LESdn"); errorhists_ee.push_back("dilDphiee_ISRup"); errorhists_ee.push_back("dilDphiee_ISRdn"); errorhists_ee.push_back("dilDphiee_Fakeup"); errorhists_ee.push_back("dilDphiee_Fakedn"); errorhists_ee.push_back("dilDphiee_PDFup"); errorhists_ee.push_back("dilDphiee_PDFdn"); std::vector errorhists_emu; errorhists_emu.push_back("dilDphiemu"); errorhists_emu.push_back("dilDphiemu_JESup"); errorhists_emu.push_back("dilDphiemu_JESdn"); errorhists_emu.push_back("dilDphiemu_LESup"); errorhists_emu.push_back("dilDphiemu_LESdn"); errorhists_emu.push_back("dilDphiemu_ISRup"); errorhists_emu.push_back("dilDphiemu_ISRdn"); errorhists_emu.push_back("dilDphiemu_Fakeup"); errorhists_emu.push_back("dilDphiemu_Fakedn"); errorhists_emu.push_back("dilDphiemu_PDFup"); errorhists_emu.push_back("dilDphiemu_PDFdn"); std::vector errorhists_mumu; errorhists_mumu.push_back("dilDphimumu"); errorhists_mumu.push_back("dilDphimumu_JESup"); errorhists_mumu.push_back("dilDphimumu_JESdn"); errorhists_mumu.push_back("dilDphimumu_LESup"); errorhists_mumu.push_back("dilDphimumu_LESdn"); errorhists_mumu.push_back("dilDphimumu_ISRup"); errorhists_mumu.push_back("dilDphimumu_ISRdn"); errorhists_mumu.push_back("dilDphimumu_Fakeup"); errorhists_mumu.push_back("dilDphimumu_Fakedn"); errorhists_mumu.push_back("dilDphimumu_PDFup"); errorhists_mumu.push_back("dilDphimumu_PDFdn"); TDErrorHistSet SigeeError2("Sigee2","SigeeError2", "SigeeError2", CanvMan1, TomLikeSig, errorhists_ee); TDErrorHistSet SigemuError2("Sigemu2","SigemuError2", "SigemuError2", CanvMan1, TomLikeSig, errorhists_emu); TDErrorHistSet SigmumuError2("Sigmumu2","SigmumuError2", "SigmumuError2", CanvMan1, TomLikeSig, errorhists_mumu); TDErrorHistSet BkgeeError2("Bkgee2","BkgeeError2", "BkgeeError2", CanvMan1, TomLikeBG, errorhists_ee); TDErrorHistSet BkgemuError2("Bkgemu2","BkgemuError2", "BkgemuError2", CanvMan1, TomLikeBG, errorhists_emu); TDErrorHistSet BkgmumuError2("Bkgmumu2","BkgmumuError2", "BkgmumuError2", CanvMan1, TomLikeBG, errorhists_mumu); TDErrorHistSet WWeeError2("WWee2","WWeeError2", "WWeeError2", CanvMan1, TomLikeWW, errorhists_ee); TDErrorHistSet WWemuError2("WWemu2","WWemuError2", "WWemuError2", CanvMan1, TomLikeWW, errorhists_emu); TDErrorHistSet WWmumuError2("WWmumu2","WWmumuError2", "WWmumuError2", CanvMan1, TomLikeWW, errorhists_mumu); TDErrorHistSet Error(SigeeError2); Error+=SigemuError2; Error+=SigmumuError2; Error+=BkgeeError2; Error+=BkgemuError2; Error+=BkgmumuError2; Error+=WWeeError2; Error+=WWemuError2; Error+=WWmumuError2; temprelerrors=SigeeError2.RelativeErrors(); for(std::vector::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal ee relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal emu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal mumu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background ee relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background emu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background mumu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW ee relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW emu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW mumu relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"grand rel error is: "<<*it<ts() << std::endl; std::cout << "tsbm2: " << mymclimit->tsbm2() << std::endl; std::cout << "tsbm1: " << mymclimit->tsbm1() << std::endl; std::cout << "tsbmed: " << mymclimit->tsbmed() << std::endl; std::cout << "tsbp1: " << mymclimit->tsbp1() << std::endl; std::cout << "tsbp2: " << mymclimit->tsbp2() << std::endl; std::cout << "tssm2: " << mymclimit->tssm2() << std::endl; std::cout << "tssm1: " << mymclimit->tssm1() << std::endl; std::cout << "tssmed: " << mymclimit->tssmed() << std::endl; std::cout << "tssp1: " << mymclimit->tssp1() << std::endl; std::cout << "tssp2: " << mymclimit->tssp2() << std::endl; std::cout << "CLs: " << mymclimit->cls() << std::endl; std::cout << "CLb: " << mymclimit->clb() << std::endl; std::cout << "CLsb: " << mymclimit->clsb() << std::endl; } void TDSuperAna::Get7708DilphiNumericalErrors(char *ername[15], double serr[15], double sderr[15], double wwerr[15], double wwderr[15], double bgerr[15], double bgderr[15]) { //TD errors from Tom's 7708 based limit //n sname = new char[strlen("LUMI")+1]; // strcpy(sname,"LUMI"); // chanresult->sysname.push_back(sname); ername[0] = "LUMI"; serr[0] = 0.04; sderr[0] = -0.04; wwerr[0] = 0.04; wwderr[0] = -0.04; bgerr[0] = 0.04; bgderr[0] = -0.04; // uncorrelated part of lumi error //sname = new char[strlen("CDFLUMI")+1]; //strcpy(sname,"CDFLUMI"); //chanresult->sysname.push_back(sname); ername[1] = "CDFLUMI"; serr[1] = 0.04; sderr[1] = -0.04; wwerr[1] = 0.04; wwderr[1] = -0.04; bgerr[1] = 0.04; bgderr[1] = -0.04; //sname = new char[strlen("CDFLEPTRIGGER")+1]; //strcpy(sname,"CDFLEPTRIGGER"); //chanresult->sysname.push_back(sname); ername[2] = "CDFLEPTRIGGER"; serr[2] = 0.01; sderr[2] = -0.01; wwerr[2] = 0.01; wwderr[2] = -0.01; bgerr[2] = 0.01; // only partly estimated in CDF 7708 bgderr[2] = -0.01; // only partly estimated in CDF 7708 //sname = new char[strlen("ISR")+1]; //strcpy(sname,"ISR"); //chanresult->sysname.push_back(sname); ername[3] = "ISR"; serr[3] = 0.03; sderr[3] = -0.03; wwerr[3] = 0.03; // not estimated in CDF 7708 wwderr[3] = -0.03; // not estimated in CDF 7708 bgerr[3] = 0.02; // partly estimated in CDF 7708 bgderr[3] = -0.02; // partly estimated in CDF 7708 //sname = new char[strlen("PDF")+1]; //strcpy(sname,"PDF"); //chanresult->sysname.push_back(sname); ername[4] = "PDF"; serr[4] = 0.03; sderr[4] = -0.03; wwerr[4] = 0.06; wwderr[4] = -0.06; bgerr[4] = 0.04; bgderr[4] = -0.04; //sname = new char[strlen("CDFJES")+1]; //strcpy(sname,"CDFJES"); //chanresult->sysname.push_back(sname); ername[5] = "CDFJES"; serr[5] = 0.01; sderr[5] = -0.01; wwerr[5] = 0.01; wwderr[5] = -0.01; bgerr[5] = 0.02; // mostly from fakes bgderr[5] = -0.02; // mostly from fakes //sname = new char[strlen("CDFTRKISO")+1]; //strcpy(sname,"CDFTRKISO"); //chanresult->sysname.push_back(sname); ername[6] = "CDFTRKISO"; serr[6] = 0.02; sderr[6] = -0.02; wwerr[6] = 0.02; wwderr[6] = -0.02; bgerr[6] = 0.02; // partly estimated in CDF 7708 bgderr[6] = -0.02; // partly estimated in CDF 7708 //sname = new char[strlen("ALPHAS")+1]; //strcpy(sname,"ALPHAS"); //chanresult->sysname.push_back(sname); ername[7] = "ALPHAS"; serr[7] = 0.0;//0.03; //we decided that nps on the signal do not belong here due to the xs being floated anyway sderr[7] = 0.0;//-0.03; wwerr[7] = 0.0; wwderr[7] = 0.0; bgerr[7] = 0.0; bgderr[7] = 0.0; //sname = new char[strlen("CDFLEPTID")+1]; //strcpy(sname,"CDFLEPTID"); //chanresult->sysname.push_back(sname); ername[8] = "CDFLEPTID"; serr[8] = 0.02; sderr[8] = -0.02; wwerr[8] = 0.02; wwderr[8] = -0.02; bgerr[8] = 0.02; bgderr[8] = -0.02; //sname = new char[strlen("CDFFAKERATE")+1]; //strcpy(sname,"CDFFAKERATE"); //chanresult->sysname.push_back(sname); ername[9] = "CDFFAKERATE"; serr[9] = 0.0; sderr[9] = 0.0; wwerr[9] = 0.0; wwderr[9] = 0.0; bgerr[9] = 0.05; // 50% error on fakes, which are 10% of background bgderr[9] = -0.05; // 50% error on fakes, which are 10% of background //sname = new char[strlen("NNLO")+1]; //strcpy(sname,"NNLO"); //chanresult->sysname.push_back(sname); /* ername[10] = "NNLO"; serr[10] = 0.1; sderr[10] = -0.1; wwerr[10] = 0.0; wwderr[10] = 0.0; bgerr[10] = 0.0; bgderr[10] = 0.0;*/ //I have poached error #10 to make it into the wgamma error. ername[10] = "wgamma"; serr[10]= 0.0; sderr[10]= 0.0; wwerr[10]= 0.0; wwderr[10] = 0.0; //GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); bgerr[10] = GetDistributedBkgrError("wgamma", "dilDphi", 0.2); bgderr[10] = -bgerr[10]; //sname = new char[strlen("CDFJETVETO")+1]; //strcpy(sname,"CDFJETVETO"); //chanresult->sysname.push_back(sname); ername[11] = "CDFJETVETO"; serr[11] = 0.0; sderr[11] = 0.0; wwerr[11] = 0.06; wwderr[11] = -0.06; bgerr[11] = 0.0; bgderr[11] = 0.0; //sname = new char[strlen("GENERATOR")+1]; //strcpy(sname,"GENERATOR"); //chanresult->sysname.push_back(sname); ername[12] = "GENERATOR"; serr[12] = 0.0; sderr[12] = 0.0; wwerr[12] = 0.04; wwderr[12] = -0.04; bgerr[12] = 0.06; bgderr[12] = -0.06; //sname = new char[strlen("CDFDYMET")+1]; //strcpy(sname,"CDFDYMET"); //chanresult->sysname.push_back(sname); ername[13] = "CDFDYMET"; serr[13] = 0.0; sderr[13] = 0.0; wwerr[13] = 0.0; wwderr[13] = 0.0; bgerr[13] = 0.05; bgderr[13] = -0.05; ername[14] = "LES"; //TD currently only from the histograms serr[14] = 0.0; sderr[14] = 0.0; wwerr[14] = 0.0; wwderr[14] = 0.0; bgerr[14] = 0.0; bgderr[14] = -0.0; } void TDSuperAna::GetDilphiErrors(char *ername[15], double serr[15], double sderr[15], double wwerr[15], double wwderr[15], double bgerr[15], double bgderr[15]) { Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); std::vector SigErrs; std::vector BkgErrs; std::vector WWErrs; TomLikelihoodemu_errvecs(SigErrs, BkgErrs, WWErrs); ername[5] = "CDFJES"; serr[5] = SigErrs[0]; sderr[5] = SigErrs[1]; wwerr[5] = WWErrs[0]; wwderr[5] = WWErrs[1]; bgerr[5] = BkgErrs[0]; bgderr[5] = BkgErrs[1]; ername[14] = "LES"; serr[14] = SigErrs[2]; sderr[14] = SigErrs[3]; wwerr[14] = WWErrs[2]; wwderr[14] = WWErrs[3]; bgerr[14] = BkgErrs[2]; bgderr[14] = BkgErrs[3]; ername[3] = "ISR"; serr[3] = SigErrs[4]; sderr[3] = SigErrs[5]; wwerr[3] = WWErrs[4]; wwderr[3] = WWErrs[5]; bgerr[3] = BkgErrs[4]; bgderr[3] = BkgErrs[5]; ername[9] = "CDFFAKERATE"; serr[9] = SigErrs[6]; sderr[9] = SigErrs[7]; wwerr[9] = WWErrs[6]; wwderr[9] = WWErrs[7]; bgerr[9] = BkgErrs[6]; bgderr[9] = BkgErrs[7]; ername[8] = "CDFLEPTID"; serr[8] = SigErrs[8]; sderr[8] = SigErrs[9]; wwerr[8] = WWErrs[8]; wwderr[8] = WWErrs[9]; bgerr[8] = BkgErrs[8]; bgderr[8] = BkgErrs[9]; } void TDSuperAna::TomLikelihoodDilDphi(bool dofrequentist) { std::cout<<"TomLikelihoodTop()"<AddAnaHist(new TDAnaHist("likehist_DilDphi_np", "toms code DilDphi np likelihood plot", 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; GetDilphiErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH1F * bkgr=(TH1F*)(TomLikeBG.GetAnaHist("dilDphi")->GetHist()); TH1F * WWbkgr=(TH1F*)(TomLikeWW.GetAnaHist("dilDphi")->GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * sig=(TH1F*)(TomLikeSig.GetAnaHist("dilDphi")->GetHist()); TH1F * data=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("dilDphi")->GetHist()); nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); char buffer[200]; sprintf(buffer, "results/tomlikeouttop_%s.ps", "dilDphi"); mycanvas->Print(buffer); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95; double fit95act; if(dofrequentist) { fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fit95act=mymclimit->s95(); } //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tom_dilDphi_np"); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); std::vector temprelerrors; std::vector errorhists; errorhists.push_back("MVA2_TMlpANN_cut1"); errorhists.push_back("MVA2_TMlpANN_cut1_JESup"); errorhists.push_back("MVA2_TMlpANN_cut1_JESdn"); errorhists.push_back("MVA2_TMlpANN_cut1_LESup"); errorhists.push_back("MVA2_TMlpANN_cut1_LESdn"); errorhists.push_back("MVA2_TMlpANN_cut1_ISRup"); errorhists.push_back("MVA2_TMlpANN_cut1_ISRdn"); errorhists.push_back("MVA2_TMlpANN_cut1_Fakeup"); errorhists.push_back("MVA2_TMlpANN_cut1_Fakedn"); TDErrorHistSet NNSigError("NN_Sig","NN_SigError", "NN_SigError", CanvMan1, TomLikeSig, errorhists); TDErrorHistSet NNBkgError("NN_Bkg","NN_BkgError", "NN_BkgError", CanvMan1, TomLikeBG, errorhists); TDErrorHistSet NNWWError("NN_WW","NN_WWError", "NN_WWError", CanvMan1, TomLikeWW, errorhists); TDErrorHistSet Error(NNSigError); Error+=NNBkgError; Error+=NNWWError; temprelerrors=NNSigError.RelativeErrors(); for(std::vector::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"NN Signal relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"NN Background relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"NN WW relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"grand rel error is: "<<*it<& SigErrs, std::vector& BkgErrs, std::vector& WWErrs) { TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); std::vector errorhists; errorhists.push_back("MVA2_TMlpANN_cut1"); errorhists.push_back("MVA2_TMlpANN_cut1_JESup"); errorhists.push_back("MVA2_TMlpANN_cut1_JESdn"); errorhists.push_back("MVA2_TMlpANN_cut1_LESup"); errorhists.push_back("MVA2_TMlpANN_cut1_LESdn"); errorhists.push_back("MVA2_TMlpANN_cut1_ISRup"); errorhists.push_back("MVA2_TMlpANN_cut1_ISRdn"); errorhists.push_back("MVA2_TMlpANN_cut1_Fakeup"); errorhists.push_back("MVA2_TMlpANN_cut1_Fakedn"); TDErrorHistSet NNSigError("NN_Sig","NN_SigError", "NN_SigError", CanvMan1, TomLikeSig, errorhists); TDErrorHistSet NNBkgError("NN_Bkg","NN_BkgError", "NN_BkgError", CanvMan1, TomLikeBG, errorhists); TDErrorHistSet NNWWError("NN_WW","NN_WWError", "NN_WWError", CanvMan1, TomLikeWW, errorhists); SigErrs=NNSigError.RelativeErrors(); BkgErrs=NNBkgError.RelativeErrors(); WWErrs=NNWWError.RelativeErrors(); double LepErrorSig=GetSFRelError(TomLikeSig); SigErrs.push_back(LepErrorSig); SigErrs.push_back(-LepErrorSig); double LepErrorBg=GetSFRelError(TomLikeBG); BkgErrs.push_back(LepErrorBg); BkgErrs.push_back(-LepErrorBg); double LepErrorWW=GetSFRelError(TomLikeWW); WWErrs.push_back(LepErrorWW); WWErrs.push_back(-LepErrorWW); } double TDSuperAna::GetSFRelError(TDHistSet SubAnaHistSet) { return ((*((TH1F*)(SubAnaHistSet.GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(SubAnaHistSet.GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(SubAnaHistSet.GetAnaHist("RelWeightError_ee")->GetHist())))) .GetMean(); } void TDSuperAna::GetNNErrors(char *ername[15], double serr[15], double sderr[15], double wwerr[15], double wwderr[15], double bgerr[15], double bgderr[15]) { Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); std::vector SigErrs; std::vector BkgErrs; std::vector WWErrs; TMLP2_errvecs(SigErrs, BkgErrs, WWErrs); ername[5] = "CDFJES"; serr[5] = SigErrs[0]; sderr[5] = SigErrs[1]; wwerr[5] = WWErrs[0]; wwderr[5] = WWErrs[1]; bgerr[5] = BkgErrs[0]; bgderr[5] = BkgErrs[1]; ername[14] = "LES"; serr[14] = SigErrs[2]; sderr[14] = SigErrs[3]; wwerr[14] = WWErrs[2]; wwderr[14] = WWErrs[3]; bgerr[14] = BkgErrs[2]; bgderr[14] = BkgErrs[3]; ername[3] = "ISR"; serr[3] = SigErrs[4]; sderr[3] = SigErrs[5]; wwerr[3] = WWErrs[4]; wwderr[3] = WWErrs[5]; bgerr[3] = BkgErrs[4]; bgderr[3] = BkgErrs[5]; ername[9] = "CDFFAKERATE"; serr[9] = SigErrs[6]; sderr[9] = SigErrs[7]; wwerr[9] = WWErrs[6]; wwderr[9] = WWErrs[7]; bgerr[9] = BkgErrs[6]; bgderr[9] = BkgErrs[7]; ername[8] = "CDFLEPTID"; serr[8] = SigErrs[8]; sderr[8] = SigErrs[9]; wwerr[8] = WWErrs[8]; wwderr[8] = WWErrs[9]; bgerr[8] = BkgErrs[8]; bgderr[8] = BkgErrs[9]; bgerr[10] = GetDistributedBkgrError("wgamma", "MVA2_TMlpANN_cut1", 0.2); bgderr[10] = -bgerr[10]; } void TDSuperAna::TomLikelihoodNNnp(bool dofrequentist) { std::cout<<"TomLikelihoodTop()"<AddAnaHist(new TDAnaHist("likehist_NNnp", "toms code NN np likelihood plot", 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; GetNNErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH1F * bkgr=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TH1F * WWbkgr=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * sig=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TH1F * data=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); char buffer[200]; sprintf(buffer, "results/tomlikeouttop_%s.ps", "MVA2_TMlpANN_cut1"); mycanvas->Print(buffer); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95; double fit95act; if(dofrequentist) { fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fit95act=mymclimit->s95(); } //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tom_MVA2_TMlpANN_cut1_np"); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<AddAnaHist(new TDAnaHist("likehist_NNshape", "toms code NNshape likelihood plot", 0, 20, 50, "", "")); char *ername[15]; double serr[15]; double sderr[15]; double wwerr[15]; double wwderr[15]; double bgerr[15]; double bgderr[15]; Get7708DilphiNumericalErrors(ername, serr,sderr,wwerr,wwderr,bgerr,bgderr); //TD these are shape errors, so have no nps. serr[5] = sderr[5] = wwerr[5] = wwderr[5] = bgerr[5] = bgderr[5] = 0.0; serr[14] = sderr[14] = wwerr[14] = wwderr[14] = bgerr[14] = bgderr[14] = 0.0; serr[3] = sderr[3] = wwerr[3] = wwderr[3] = bgerr[3] = bgderr[3] = 0.0; serr[9] = sderr[9] = wwerr[9] = wwderr[9] = bgerr[9] = bgderr[9] = 0.0; serr[4] = sderr[4] = wwerr[4] = wwderr[4] = bgerr[4] = bgderr[4] = 0.0; serr[6] = sderr[6] = wwerr[6] = wwderr[6] = bgerr[6] = bgderr[6] = 0.0; serr[2] = sderr[2] = wwerr[2] = wwderr[2] = bgerr[2] = bgderr[2] = 0.0; bgerr[10] = GetDistributedBkgrError("wgamma", "MVA2_TMlpANN_cut1", 0.2); bgderr[10] = -bgerr[10]; TH1 * sigupshape[15]; TH1 * sigdownshape[15]; double sigupshapesigma[15]; double sigdownshapesigma[15]; TH1 * wwupshape[15]; TH1 * wwdownshape[15]; double wwupshapesigma[15]; double wwdownshapesigma[15]; TH1 * bgupshape[15]; TH1 * bgdownshape[15]; double bgupshapesigma[15]; double bgdownshapesigma[15]; for (int i=0;i<15;i++) { sigupshape[i] = 0; sigdownshape[i] = 0; sigupshapesigma[i] = 0; sigdownshapesigma[i] = 0; wwupshape[i] = 0; wwdownshape[i] = 0; wwupshapesigma[i] = 0; wwdownshapesigma[i] = 0; bgupshape[i] = 0; bgdownshape[i] = 0; bgupshapesigma[i] = 0; bgdownshapesigma[i] = 0; } TDHistSet TomLikeBG(*(HistSets->GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TH1F * bkgr=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TH1F * WWbkgr=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * sig=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); TH1F * data=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()); serr[8]=GetSFRelError(TomLikeSig); wwerr[8]=GetSFRelError(TomLikeWW); bgerr[8]=GetSFRelError(TomLikeBG); sderr[8]=-serr[8]; wwderr[8]=-wwerr[8]; bgderr[8]=-bgerr[8]; //JES shape errors sigupshape[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESup")->GetHist()); sigdownshape[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn")->GetHist()); sigupshapesigma[5] = 1; sigdownshapesigma[5] = -1; wwupshape[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup")->GetHist()); wwdownshape[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn")->GetHist()); wwupshapesigma[5] = 1; wwdownshapesigma[5] = -1; bgupshape[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup")->GetHist()); bgdownshape[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn")->GetHist()); bgupshapesigma[5] = 1; bgdownshapesigma[5] = -1; //TD Lepton Energy Scale Shape Errors sigupshape[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup")->GetHist()); sigdownshape[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn")->GetHist()); sigupshapesigma[14] = 1; sigdownshapesigma[14] = -1; wwupshape[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup")->GetHist()); wwdownshape[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn")->GetHist()); wwupshapesigma[14] = 1; wwdownshapesigma[14] = -1; bgupshape[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup")->GetHist()); bgdownshape[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn")->GetHist()); bgupshapesigma[14] = 1; bgdownshapesigma[14] = -1; sigupshape[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup")->GetHist()); sigdownshape[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn")->GetHist()); sigupshapesigma[4] = 1; sigdownshapesigma[4] = -1; wwupshape[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup")->GetHist()); wwdownshape[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn")->GetHist()); wwupshapesigma[4] = 1; wwdownshapesigma[4] = -1; bgupshape[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup")->GetHist()); bgdownshape[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn")->GetHist()); bgupshapesigma[4] = 1; bgdownshapesigma[4] = -1; //TD ISR Shape errors sigupshape[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup")->GetHist()); sigdownshape[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn")->GetHist()); sigupshapesigma[3] = 1; sigdownshapesigma[3] = -1; wwupshape[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup")->GetHist()); wwdownshape[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn")->GetHist()); wwupshapesigma[3] = 1; wwdownshapesigma[3] = -1; bgupshape[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup")->GetHist()); bgdownshape[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn")->GetHist()); bgupshapesigma[3] = 1; bgdownshapesigma[3] = -1; //TD Fake shape errors (there mst be a way to handle these properly) sigupshape[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup")->GetHist()); sigdownshape[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn")->GetHist()); sigupshapesigma[9] = 1; sigdownshapesigma[9] = -1; wwupshape[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup")->GetHist()); wwdownshape[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn")->GetHist()); wwupshapesigma[9] = 1; wwdownshapesigma[9] = -1; bgupshape[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup")->GetHist()); bgdownshape[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn")->GetHist()); bgupshapesigma[9] = 1; bgdownshapesigma[9] = -1; nullhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); testhyp->add_template(bkgr,1.0,15,ername,bgderr,bgerr, bgdownshape,bgdownshapesigma,bgupshape,bgupshapesigma,0,0,"Channel 1"); nullhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(WWbkgr,1.0,15,ername,wwderr,wwerr, wwdownshape,wwdownshapesigma,wwupshape,wwupshapesigma,0,0,"Channel 1"); testhyp->add_template(sig,1.0,15,ername,sderr,serr, sigdownshape,sigdownshapesigma,sigupshape,sigupshapesigma,0,1,"Channel 1"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvas1","Canvas1"); mycanvas->Divide(2,1); mycanvas->cd(1); testhyp->plotwithdata("Channel 1",data ); csm* mycsm = new csm(); mycsm->set_htofit( data , "Channel 1"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(2); bestsignalfit->plotwithdata("Channel 1", data); char buffer[200]; sprintf(buffer, "results/tomlikeouttop_%s.ps", "MVA2_TMlpANN_cut1"); mycanvas->Print(buffer); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(data, "Channel 1"); mymclimit->set_npe(1000); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); double fit95; double fit95act; if(dofrequentist) { fit95=mymclimit->s95med(); std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; fit95act=mymclimit->s95(); } //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tom_MVA2_TMlpANN_cut1_shape"); likefile << _higgsMass << " " << sflimit*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sm1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << smed*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp1*GetHwwXS((int)_higgsMass, _stn)/0.1068 << " " << sp2*GetHwwXS((int)_higgsMass, _stn)/0.1068 << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TH1F * bkgree=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * WWbkgree=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * sigee=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * dataee=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * bkgremu=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * WWbkgremu=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * sigemu=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * dataemu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * bkgrmumu=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * WWbkgrmumu=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * sigmumu=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * datamumu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); std::cout<<"TomLikelihoodemu() NNshape emu"<AddAnaHist(new TDAnaHist("likehist_emu_MVA2_TMlpANN_cut1", "toms code MVA2_TMlpANN_cut1 emu likelihood plot", 0, 20, 50, "", "")); _superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_MVA2_TMlpANN_cut1_10", "toms code MVA2_TMlpANN_cut1 emu likelihood plot_10", 0, 10, 50, "", "")); //_superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_xs", "toms code dilphi emu likelihood plot withxs", 0, 20, 50, "", "")); char *ername[15]; double serr_mumu[15]; double sderr_mumu[15]; double wwerr_mumu[15]; double wwderr_mumu[15]; double bgerr_mumu[15]; double bgderr_mumu[15]; double serr_ee[15]; double sderr_ee[15]; double wwerr_ee[15]; double wwderr_ee[15]; double bgerr_ee[15]; double bgderr_ee[15]; double serr_emu[15]; double sderr_emu[15]; double wwerr_emu[15]; double wwderr_emu[15]; double bgerr_emu[15]; double bgderr_emu[15]; //n sname = new char[strlen("LUMI")+1]; // strcpy(sname,"LUMI"); // chanresult->sysname.push_back(sname); ername[0] = "LUMI"; serr_emu[0] = serr_mumu[0] = serr_ee[0] = 0.04; sderr_emu[0] = sderr_mumu[0] = sderr_ee[0] = -0.04; wwerr_emu[0] = wwerr_mumu[0] = wwerr_ee[0] = 0.04; wwderr_emu[0] = wwderr_mumu[0] = wwderr_ee[0] = -0.04; bgerr_emu[0] = bgerr_mumu[0] = bgerr_ee[0] = 0.04; bgderr_emu[0] = bgderr_mumu[0] = bgderr_ee[0] = -0.04; // uncorrelated part of lumi error //sname = new char[strlen("CDFLUMI")+1]; //strcpy(sname,"CDFLUMI"); //chanresult->sysname.push_back(sname); ername[1] = "CDFLUMI"; serr_emu[1] = serr_mumu[1] = serr_ee[1] = 0.04; sderr_emu[1] = sderr_mumu[1] = sderr_ee[1] = -0.04; wwerr_emu[1] = wwerr_mumu[1] = wwerr_ee[1] = 0.04; wwderr_emu[1] = wwderr_mumu[1] = wwderr_ee[1] = -0.04; bgerr_emu[1] = bgerr_mumu[1] = bgerr_ee[1] = 0.04; bgderr_emu[1] = bgderr_mumu[1] = bgderr_ee[1] = -0.04; //sname = new char[strlen("CDFLEPTRIGGER")+1]; //strcpy(sname,"CDFLEPTRIGGER"); //chanresult->sysname.push_back(sname); ername[2] = "CDFLEPTRIGGER"; serr_emu[2] = serr_mumu[2] = serr_ee[2] = 0.00;//0.01; sderr_emu[2] = sderr_mumu[2] = sderr_ee[2] = 0.00;//-0.01; wwerr_emu[2] = wwerr_mumu[2] = wwerr_ee[2] = 0.00;//0.01; wwderr_emu[2] = wwderr_mumu[2] = wwderr_ee[2] = 0.00;//-0.01; bgerr_emu[2] = bgerr_mumu[2] = bgerr_ee[2] = 0.00; bgderr_emu[2] = bgderr_mumu[2] = bgderr_ee[2] = -0.00; //sname = new char[strlen("ISR")+1]; //strcpy(sname,"ISR"); //chanresult->sysname.push_back(sname); ername[3] = "ISR"; serr_emu[3] = serr_mumu[3] = serr_ee[3] = 0.0;// 0.03; //TD now in shape error hists. sderr_emu[3] = sderr_mumu[3] = sderr_ee[3] = 0.0;//-0.03; wwerr_emu[3] = wwerr_mumu[3] = wwerr_ee[3] = 0.0;//0.03; // not estimated in CDF 7708 wwderr_emu[3] = wwderr_mumu[3] = wwderr_ee[3] = 0.0;//-0.03; // not estimated in CDF 7708 bgerr_emu[3] = bgerr_mumu[3] = bgerr_ee[3] = 0.0;//0.02; // partly estimated in CDF 7708 bgderr_emu[3] = bgderr_mumu[3] = bgderr_ee[3] = 0.0;//-0.02; // partly estimated in CDF 7708 //sname = new char[strlen("PDF")+1]; //strcpy(sname,"PDF"); //chanresult->sysname.push_back(sname); ername[4] = "PDF"; serr_emu[4] = serr_mumu[4] = serr_ee[4] = 0.0;//0.03; sderr_emu[4] = sderr_mumu[4] = sderr_ee[4] = 0.0;//-0.03; wwerr_emu[4] = wwerr_mumu[4] = wwerr_ee[4] = 0.0;//0.06; wwderr_emu[4] = wwderr_mumu[4] = wwderr_ee[4] = 0.0;//-0.06; bgerr_emu[4] = bgerr_mumu[4] = bgerr_ee[4] = 0.0;//0.04; bgderr_emu[4] = bgderr_mumu[4] = bgderr_ee[4] = 0.0;//-0.04; //sname = new char[strlen("CDFJES")+1]; //strcpy(sname,"CDFJES"); //chanresult->sysname.push_back(sname); ername[5] = "CDFJES"; serr_emu[5] = serr_mumu[5] = serr_ee[5] = 0.0;//0.01; sderr_emu[5] = sderr_mumu[5] = sderr_ee[5] = 0.0;//-0.01; wwerr_emu[5] = wwerr_mumu[5] = wwerr_ee[5] = 0.0;//0.01; wwderr_emu[5] = wwderr_mumu[5] = wwderr_ee[5] = 0.0;//-0.01; bgerr_emu[5] = bgerr_mumu[5] = bgerr_ee[5] = 0.0;//0.02; // mostly from fakes bgderr_emu[5] = bgderr_mumu[5] = bgderr_ee[5] = 0.0;//-0.02; // mostly from fakes //sname = new char[strlen("CDFTRKISO")+1]; //strcpy(sname,"CDFTRKISO"); //chanresult->sysname.push_back(sname); ername[6] = "CDFTRKISO"; serr_emu[6] = serr_mumu[6] = serr_ee[6] = 0.00;//0.02; sderr_emu[6] = sderr_mumu[6] = sderr_ee[6] = 0.00;//-0.02; wwerr_emu[6] = wwerr_mumu[6] = wwerr_ee[6] = 0.00;//0.02; wwderr_emu[6] = wwderr_mumu[6] = wwderr_ee[6] = 0.00;//-0.02; bgerr_emu[6] = bgerr_mumu[6] = bgerr_ee[6] = 0.00;//0.02; // partly estimated in CDF 7708 bgderr_emu[6] = bgderr_mumu[6] = bgderr_ee[6] = 0.00;//-0.02; // partly estimated in CDF 7708 //sname = new char[strlen("ALPHAS")+1]; //strcpy(sname,"ALPHAS"); //chanresult->sysname.push_back(sname); ername[7] = "ALPHAS"; serr_emu[7] = serr_mumu[7] = serr_ee[7] = 0.00;// //due to the xs floating in the likelihood fit, we don't htink this is needed: 0.03; sderr_emu[7] = sderr_mumu[7] = sderr_ee[7] = 0.00;// //due to the xs floating in the likelihood fit, we don't htink this is needed: -0.03; wwerr_emu[7] = wwerr_mumu[7] = wwerr_ee[7] = 0.0; wwderr_emu[7] = wwderr_mumu[7] = wwderr_ee[7] = 0.0; bgerr_emu[7] = bgerr_mumu[7] = bgerr_ee[7] = 0.0; bgderr_emu[7] = bgderr_mumu[7] = bgderr_ee[7] = 0.0; //sname = new char[strlen("CDFLEPTID")+1]; //strcpy(sname,"CDFLEPTID"); //chanresult->sysname.push_back(sname); ername[8] = "CDFLEPTID"; serr_emu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); serr_mumu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); serr_ee[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; sderr_emu[8] = -serr_emu[8]; sderr_mumu[8] = -serr_mumu[8]; sderr_ee[8] = -serr_ee[8]; //-0.02; wwerr_emu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); wwerr_mumu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); wwerr_ee[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; wwderr_emu[8] = -wwerr_emu[8]; wwderr_mumu[8] = -wwerr_mumu[8]; wwderr_ee[8] = -wwerr_ee[8];//-0.02; bgerr_emu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); bgerr_mumu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); bgerr_ee[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; bgderr_emu[8] = -bgerr_emu[8]; bgderr_mumu[8] = -bgerr_mumu[8]; bgderr_ee[8] = -bgerr_ee[8];//-0.02; std::cout<sysname.push_back(sname); ername[9] = "CDFFAKERATE"; serr_emu[9] = serr_mumu[9] = serr_ee[9] = 0.0; sderr_emu[9] = sderr_mumu[9] = sderr_ee[9] = 0.0; wwerr_emu[9] = wwerr_mumu[9] = wwerr_ee[9] = 0.0; wwderr_emu[9] = wwderr_mumu[9] = wwderr_ee[9] = 0.0; bgerr_emu[9] = bgerr_mumu[9] = bgerr_ee[9] = 0.0; //TD fake in shape hists 0.05; // 50% error on fakes, which are 10% of background bgderr_emu[9] = bgderr_mumu[9] = bgderr_ee[9] = 0.0;//TD fake in shape hists -0.05; // 50% error on fakes, which are 10% of background //sname = new char[strlen("NNLO")+1]; //strcpy(sname,"NNLO"); //chanresult->sysname.push_back(sname); /*ername[10] = "NNLO"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.0; //due to the xs floating in the likelihood fit, we don't htink this is needed: 0.1; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = 0.0; //due to the xs floating in the likelihood fit, we don't htink this is needed:-0.1; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; bgerr_emu[10] = bgerr_mumu[10] = bgerr_ee[10] = 0.0; bgderr_emu[10] = bgderr_mumu[10] = bgderr_ee[10] = 0.0;*/ //I have poached error #10 to make it into the wgamma error. ername[10] = "wgamma"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.0; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = 0.0; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; //GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); bgerr_emu[10] = GetDistributedBkgrError("wgamma", "MVA_TMlpANN_cut1_emu", 0.2); bgerr_mumu[10] = GetDistributedBkgrError("wgamma", "MVA_TMlpANN_cut1_mumu", 0.2); bgerr_ee[10] = GetDistributedBkgrError("wgamma", "MVA_TMlpANN_cut1_ee", 0.2); bgderr_emu[10] = -bgerr_emu[10]; bgderr_mumu[10] = -bgerr_mumu[10]; bgderr_ee[10] = -bgerr_ee[10]; //sname = new char[strlen("CDFJETVETO")+1]; //strcpy(sname,"CDFJETVETO"); //chanresult->sysname.push_back(sname); ername[11] = "CDFJETVETO"; serr_emu[11] = serr_mumu[11] = serr_ee[11] = 0.0; sderr_emu[11] = sderr_mumu[11] = sderr_ee[11] = 0.0; wwerr_emu[11] = wwerr_mumu[11] = wwerr_ee[11] = 0.06; wwderr_emu[11] = wwderr_mumu[11] = wwderr_ee[11] = -0.06; bgerr_emu[11] = bgerr_mumu[11] = bgerr_ee[11] = 0.0; bgderr_emu[11] = bgderr_mumu[11] = bgderr_ee[11] = 0.0; //sname = new char[strlen("GENERATOR")+1]; //strcpy(sname,"GENERATOR"); //chanresult->sysname.push_back(sname); ername[12] = "GENERATOR"; serr_emu[12] = serr_mumu[12] = serr_ee[12] = 0.0; sderr_emu[12] = sderr_mumu[12] = sderr_ee[12] = 0.0; wwerr_emu[12] = wwerr_mumu[12] = wwerr_ee[12] = 0.04; wwderr_emu[12] = wwderr_mumu[12] = wwderr_ee[12] = -0.04; bgerr_emu[12] = bgerr_mumu[12] = bgerr_ee[12] = 0.06; bgderr_emu[12] = bgderr_mumu[12] = bgderr_ee[12] = -0.06; //sname = new char[strlen("CDFDYMET")+1]; //strcpy(sname,"CDFDYMET"); //chanresult->sysname.push_back(sname); std::vector DYerrors=GetemuBkgDYError(0.3); ername[13] = "CDFDYCUT"; serr_emu[13] = serr_mumu[13] = serr_ee[13] = 0.0; sderr_emu[13] = sderr_mumu[13] = sderr_ee[13] = 0.0; wwerr_emu[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); wwerr_mumu[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_mumu", 0.2); wwerr_ee[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_ee", 0.2); //wwerr_emu[13] = wwerr_mumu[13] = wwerr_ee[13] = 0.0; //wwderr_emu[13] = wwderr_mumu[13] = wwderr_ee[13] = 0.0; wwderr_emu[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); wwderr_mumu[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_mumu", 0.2); wwderr_ee[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_ee", 0.2); bgerr_emu[13] = 0.2-wwerr_emu[13]+DYerrors[2]; bgerr_mumu[13] = 0.2-wwerr_mumu[13]+DYerrors[3]; bgerr_ee[13] = 0.2-wwerr_ee[13]+DYerrors[1]; bgderr_emu[13] = -bgerr_emu[13]; bgderr_mumu[13] = -bgerr_mumu[13]; bgderr_ee[13] = -bgerr_ee[13]; std::cout<GetHist()); sigdownshape_ee[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); sigupshapesigma_ee[5] = 1; sigdownshapesigma_ee[5] = -1; wwupshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_ee")->GetHist()); wwdownshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); wwupshapesigma_ee[5] = 1; wwdownshapesigma_ee[5] = -1; bgupshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_ee")->GetHist()); bgdownshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); bgupshapesigma_ee[5] = 1; bgdownshapesigma_ee[5] = -1; sigupshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); sigdownshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); sigupshapesigma_emu[5] = 1; sigdownshapesigma_emu[5] = -1; wwupshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); wwdownshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); wwupshapesigma_emu[5] = 1; wwdownshapesigma_emu[5] = -1; bgupshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); bgdownshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); bgupshapesigma_emu[5] = 1; bgdownshapesigma_emu[5] = -1; sigupshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); sigdownshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); sigupshapesigma_mumu[5] = 1; sigdownshapesigma_mumu[5] = -1; wwupshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); wwdownshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); wwupshapesigma_mumu[5] = 1; wwdownshapesigma_mumu[5] = -1; bgupshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); bgdownshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); bgupshapesigma_mumu[5] = 1; bgdownshapesigma_mumu[5] = -1; //TD Lepton Energy Scale Shape Errors sigupshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); sigdownshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); sigupshapesigma_ee[14] = 1; sigdownshapesigma_ee[14] = -1; wwupshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); wwdownshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); wwupshapesigma_ee[14] = 1; wwdownshapesigma_ee[14] = -1; bgupshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); bgdownshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); bgupshapesigma_ee[14] = 1; bgdownshapesigma_ee[14] = -1; sigupshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); sigdownshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); sigupshapesigma_emu[14] = 1; sigdownshapesigma_emu[14] = -1; wwupshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); wwdownshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); wwupshapesigma_emu[14] = 1; wwdownshapesigma_emu[14] = -1; bgupshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); bgdownshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); bgupshapesigma_emu[14] = 1; bgdownshapesigma_emu[14] = -1; sigupshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); sigdownshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); sigupshapesigma_mumu[14] = 1; sigdownshapesigma_mumu[14] = -1; wwupshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); wwdownshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); wwupshapesigma_mumu[14] = 1; wwdownshapesigma_mumu[14] = -1; bgupshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); bgdownshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); bgupshapesigma_mumu[14] = 1; bgdownshapesigma_mumu[14] = -1; //TD PDF Shape errors sigupshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); sigdownshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); sigupshapesigma_ee[4] = 1; sigdownshapesigma_ee[4] = -1; wwupshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); wwdownshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); wwupshapesigma_ee[4] = 1; wwdownshapesigma_ee[4] = -1; bgupshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); bgdownshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); bgupshapesigma_ee[4] = 1; bgdownshapesigma_ee[4] = -1; sigupshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); sigdownshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); sigupshapesigma_emu[4] = 1; sigdownshapesigma_emu[4] = -1; wwupshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); wwdownshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); wwupshapesigma_emu[4] = 1; wwdownshapesigma_emu[4] = -1; bgupshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); bgdownshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); bgupshapesigma_emu[4] = 1; bgdownshapesigma_emu[4] = -1; sigupshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); sigdownshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); sigupshapesigma_mumu[4] = 1; sigdownshapesigma_mumu[4] = -1; wwupshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); wwdownshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); wwupshapesigma_mumu[4] = 1; wwdownshapesigma_mumu[4] = -1; bgupshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); bgdownshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); bgupshapesigma_mumu[4] = 1; bgdownshapesigma_mumu[4] = -1; //TD ISR Shape errors sigupshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); sigdownshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); sigupshapesigma_ee[3] = 1; sigdownshapesigma_ee[3] = -1; wwupshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); wwdownshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); wwupshapesigma_ee[3] = 1; wwdownshapesigma_ee[3] = -1; bgupshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); bgdownshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); bgupshapesigma_ee[3] = 1; bgdownshapesigma_ee[3] = -1; sigupshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); sigdownshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); sigupshapesigma_emu[3] = 1; sigdownshapesigma_emu[3] = -1; wwupshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); wwdownshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); wwupshapesigma_emu[3] = 1; wwdownshapesigma_emu[3] = -1; bgupshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); bgdownshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); bgupshapesigma_emu[3] = 1; bgdownshapesigma_emu[3] = -1; sigupshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); sigdownshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); sigupshapesigma_mumu[3] = 1; sigdownshapesigma_mumu[3] = -1; wwupshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); wwdownshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); wwupshapesigma_mumu[3] = 1; wwdownshapesigma_mumu[3] = -1; bgupshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); bgdownshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); bgupshapesigma_mumu[3] = 1; bgdownshapesigma_mumu[3] = -1; //TD Fake shape errors (there mst be a way to handle these properly) sigupshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); sigdownshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); sigupshapesigma_ee[9] = 1; sigdownshapesigma_ee[9] = -1; wwupshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); wwdownshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); wwupshapesigma_ee[9] = 1; wwdownshapesigma_ee[9] = -1; bgupshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); bgdownshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); bgupshapesigma_ee[9] = 1; bgdownshapesigma_ee[9] = -1; sigupshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); sigdownshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); sigupshapesigma_emu[9] = 1; sigdownshapesigma_emu[9] = -1; wwupshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); wwdownshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); wwupshapesigma_emu[9] = 1; wwdownshapesigma_emu[9] = -1; bgupshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); bgdownshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); bgupshapesigma_emu[9] = 1; bgdownshapesigma_emu[9] = -1; sigupshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); sigdownshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); sigupshapesigma_mumu[9] = 1; sigdownshapesigma_mumu[9] = -1; wwupshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); wwdownshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); wwupshapesigma_mumu[9] = 1; wwdownshapesigma_mumu[9] = -1; bgupshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); bgdownshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); bgupshapesigma_mumu[9] = 1; bgdownshapesigma_mumu[9] = -1; //ee channel nullhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); nullhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(sigee,1.0,15,ername,sderr_ee,serr_ee, sigdownshape_ee,sigdownshapesigma_ee,sigupshape_ee,sigupshapesigma_ee,0,1,"Channel ee"); //emu channel nullhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); nullhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(sigemu,1.0,15,ername,sderr_emu,serr_emu, sigdownshape_emu,sigdownshapesigma_emu,sigupshape_emu,sigupshapesigma_emu,0,1,"Channel emu"); //mumu channel nullhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); nullhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(sigmumu,1.0,15,ername,sderr_mumu,serr_mumu, sigdownshape_mumu,sigdownshapesigma_mumu,sigupshape_mumu,sigupshapesigma_mumu,0,1,"Channel mumu"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvasemu","Canvasemu"); mycanvas->Divide(3,2); mycanvas->cd(1); testhyp->plotwithdata("Channel ee",dataee ); mycanvas->cd(2); testhyp->plotwithdata("Channel emu",dataemu ); mycanvas->cd(3); testhyp->plotwithdata("Channel mumu",datamumu ); csm* mycsm = new csm(); mycsm->set_htofit( dataee , "Channel ee"); mycsm->set_htofit( dataemu , "Channel emu"); mycsm->set_htofit( datamumu , "Channel mumu"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(4); bestsignalfit->plotwithdata("Channel ee", dataee); mycanvas->cd(5); bestsignalfit->plotwithdata("Channel emu", dataemu); mycanvas->cd(6); bestsignalfit->plotwithdata("Channel mumu", datamumu); mycanvas->Print("results/tomlikeoutemu_NNshape.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(dataee, "Channel ee"); mymclimit->set_datahist(dataemu, "Channel emu"); mymclimit->set_datahist(datamumu, "Channel mumu"); mymclimit->set_npe(nps); mymclimit->run_pseudoexperiments(); PrintMclimitVals(mymclimit); //double fit95=mymclimit->s95med(); //std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); double scalefac=GetHwwXS((int)_higgsMass, _stn)/0.1068; std::vector theBayeslist=mymclimit->Getcslist(); for(std::vector::iterator it=theBayeslist.begin(); it!=theBayeslist.end(); ++it) { //std::cout<<"filling: "<<*it<GetLast()->GetHist()->Fill((*it)*scalefac); _superAnaHists->GetAnaHist("likehist_emu_MVA2_TMlpANN_cut1")->GetHist()->Fill((*it)*scalefac); } TFile outfile("results/likefile.root", "update"); _superAnaHists->GetAnaHist("likehist_emu_MVA2_TMlpANN_cut1_10")->GetHist()->Write("likehist_emu_MVA2_TMlpANN_cut1_10",TObject::kWriteDelete); _superAnaHists->GetAnaHist("likehist_emu_MVA2_TMlpANN_cut1")->GetHist()->Write("likehist_emu_MVA2_TMlpANN_cut1",TObject::kWriteDelete); outfile.Close(); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "tom emu NN shape mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "tom emu NN shape mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tomemu_NNshape"); likefile << _higgsMass << " " << sflimit*scalefac << " " << sm2*scalefac << " " << sm1*scalefac << " " << smed*scalefac << " " << sp1*scalefac << " " << sp2*scalefac << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"< errors; std::vector syserrors; std::vector datasets; os<<" \\begin{table}[H]"< normaldatasets; normaldatasets.push_back("WW"); normaldatasets.push_back("WZ"); normaldatasets.push_back("ZZ"); normaldatasets.push_back("ttbar"); normaldatasets.push_back("wgamma"); normaldatasets.push_back("fake"); for(std::vector::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { std::cout<<*it<GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral(),errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral(),errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral(),errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral(),errors[0],syserrors[0]); os<<*it<<" & "<GetHistSet("Zee")->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral(), errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral(), errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral(), errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral(), errors[0],syserrors[0]); os<<"Drell Yan"<<" & "<::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { integralee+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral(); integralemu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral(); integralmumu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral(); integral+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral(); } sprintf(bufferee,"%2.2f$pm$%2.2f$pm$%2.2f",integralee,errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",integralemu,errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",integralmumu,errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",integral,errors[0],syserrors[0]); os<<"Background Total"<<" & "<GetHistSet("higgsww")->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral(),errors[1],syserrors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral(),errors[2],syserrors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral(),errors[3],syserrors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral(),errors[0],syserrors[0]); os<<"Higgs to WW"<<" & "<GetHistSet("data")->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral()); sprintf(bufferemu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral()); sprintf(buffermumu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral()); sprintf(buffertot,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral()); os<<"data"<<" & "< TDSuperAna::GetNNAcceptanceError(const char * onesubanaset) { std::vector acceptvector; acceptvector.push_back(onesubanaset); return GetNNAcceptanceError(acceptvector); } std::vector TDSuperAna::GetNNAcceptanceError(std::vector acceptvector) { double totevts[4]; double passedevts[4]; double reducedpassedevts[4]; double reductionratios[4]; double effs[4]; double errors[4]; for(int i=0; i!=4; i++) { totevts[i]=0.0; passedevts[i]=0.0; reducedpassedevts[i]=0.0; reductionratios[i]=0.0; effs[i]=0.0; errors[i]=0.0; } for(std::vector::iterator it=acceptvector.begin(); it!=acceptvector.end(); it++) { totevts[0]+=GetSubAna(*it)->GetInputEvents(); totevts[1]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_ee(); totevts[2]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_emu(); totevts[3]+=GetSubAna(*it)->GetInputEvents();//GetSubAna(*it)->GetInputEvents_mumu(); passedevts[0]+=GetSubAna(*it)->GetAnaCutSet()->GetCutAnaCut()->Getpassed(); passedevts[1]+=GetSubAna(*it)->GetAnaCutSet_ee()->GetCutAnaCut()->Getpassed(); passedevts[2]+=GetSubAna(*it)->GetAnaCutSet_emu()->GetCutAnaCut()->Getpassed(); passedevts[3]+=GetSubAna(*it)->GetAnaCutSet_mumu()->GetCutAnaCut()->Getpassed(); reducedpassedevts[0]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1")))->GetHist()->Integral(); //passed events with xs, lum and weight scaling reducedpassedevts[1]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_ee")))->GetHist()->Integral(); reducedpassedevts[2]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_emu")))->GetHist()->Integral(); reducedpassedevts[3]+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("MVA2_TMlpANN_cut1_mumu")))->GetHist()->Integral(); std::cout<<"average weight"<<(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt("Weight")))->GetHist()->GetMean()<GetScaleforNormalisation()<GetHistSet((*it).c_str())->GetAnaIt("Weight")))->GetHist()->GetMean())*(GetSubAna(*it)->GetScaleforNormalisation())< tempvec; for(int i=0; i!=4; i++) { std::cout<<"reducedpassedevts"< TDSuperAna::GetNNSysError(std::vector syserrorvector) { std::cout<<"GetNNSysError"< errorhists_ee; errorhists_ee.push_back("MVA2_TMlpANN_cut1_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakeup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakedn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFdn_ee"); std::vector errorhists_emu; errorhists_emu.push_back("MVA2_TMlpANN_cut1_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakeup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakedn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFdn_emu"); std::vector errorhists_mumu; errorhists_mumu.push_back("MVA2_TMlpANN_cut1_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakeup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakedn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFdn_mumu"); /*std::vector errorhists_ee; errorhists_ee.push_back("dilDphiee"); errorhists_ee.push_back("dilDphiee_JESup"); errorhists_ee.push_back("dilDphiee_JESdn"); errorhists_ee.push_back("dilDphiee_LESup"); errorhists_ee.push_back("dilDphiee_LESdn"); errorhists_ee.push_back("dilDphiee_ISRup"); errorhists_ee.push_back("dilDphiee_ISRdn"); errorhists_ee.push_back("dilDphiee_Fakeup"); errorhists_ee.push_back("dilDphiee_Fakedn"); errorhists_ee.push_back("dilDphiee_PDFup"); errorhists_ee.push_back("dilDphiee_PDFdn"); std::vector errorhists_emu; errorhists_emu.push_back("dilDphiemu"); errorhists_emu.push_back("dilDphiemu_JESup"); errorhists_emu.push_back("dilDphiemu_JESdn"); errorhists_emu.push_back("dilDphiemu_LESup"); errorhists_emu.push_back("dilDphiemu_LESdn"); errorhists_emu.push_back("dilDphiemu_ISRup"); errorhists_emu.push_back("dilDphiemu_ISRdn"); errorhists_emu.push_back("dilDphiemu_Fakeup"); errorhists_emu.push_back("dilDphiemu_Fakedn"); errorhists_emu.push_back("dilDphiemu_PDFup"); errorhists_emu.push_back("dilDphiemu_PDFdn"); std::vector errorhists_mumu; errorhists_mumu.push_back("dilDphimumu"); errorhists_mumu.push_back("dilDphimumu_JESup"); errorhists_mumu.push_back("dilDphimumu_JESdn"); errorhists_mumu.push_back("dilDphimumu_LESup"); errorhists_mumu.push_back("dilDphimumu_LESdn"); errorhists_mumu.push_back("dilDphimumu_ISRup"); errorhists_mumu.push_back("dilDphimumu_ISRdn"); errorhists_mumu.push_back("dilDphimumu_Fakeup"); errorhists_mumu.push_back("dilDphimumu_Fakedn"); errorhists_mumu.push_back("dilDphimumu_PDFup"); errorhists_mumu.push_back("dilDphimumu_PDFdn");*/ bool start=true; TDHistSet * cumulatedhists; //double eeAbsError=0; //double emuAbsError=0; //double mumuAbsError=0; //double totAbsError=0; ////double np=0.059; //double np=0.; //zero to begin with //double sumsqtotnpError=0; double _np_higgsww = 0.1;//0.032;//0.1 for NNLO, 0.03 for alphas double _np_VV = 0.089; //8% for Jet veto and PDF/Q2 on sigWW; 4% on generator double _np_ttbar = 0.07; double _np_DY = 0.306; if(_sexo) _np_DY = 0.31; double _np_wgamma = 0.2; double TotalDYCutError=0.2; // this is the total error for all the backgrounds combined in cutting on the DY NN. //elements will be total,ee,em,mm: double _n_higgsww[4] = {0.,0.,0.,0.}; double _n_VV[4] = {0.,0.,0.,0.}; double _n_ttbar[4] = {0.,0.,0.,0.}; double _n_DY[4] = {0.,0.,0.,0.}; double _n_wgamma[4] = {0.,0.,0.,0.}; double total_DYNNCut_Error[4]={0.,0.,0.,0.}; for(std::vector::iterator it=syserrorvector.begin(); it!=syserrorvector.end(); it++) { std::cout<<"in loop"<<(*it)<< std::endl; if(start) { cumulatedhists = new TDHistSet(*(HistSets->GetHistSet((*it).c_str()))); start=false; }else{ (*cumulatedhists)+=(*(HistSets->GetHistSet((*it).c_str()))); } //np=0.; //zero to begin with //if(*it=="higgsww"){np=0.032;} //else if(*it=="WW"){np=0.089;}//{np=0.059;} //8% for Jet veto and PDF/Q2 on sigWW; 4% on generator //else if(*it=="ttbar"){np=0.07;} //else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){np=0.306; if(_sexo)np=0.31;}//212;} // deal with process-specific uncertainties; fully correlated between ee,em,mm: // also fully correlated between ee,mm,tt for DY, and between WW,WZ,ZZ for diboson. if(*it=="higgsww"){ _n_higgsww[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); _n_higgsww[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); _n_higgsww[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); _n_higgsww[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); } else if(*it=="ttbar"){ _n_ttbar[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); _n_ttbar[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); _n_ttbar[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); _n_ttbar[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); } else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){ _n_DY[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); _n_DY[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); _n_DY[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); _n_DY[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); } else if(*it=="WW" || *it=="WZ" || *it=="ZZ"){ _n_VV[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); _n_VV[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); _n_VV[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); _n_VV[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); } else if(*it=="wgamma"){ _n_wgamma[0] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); _n_wgamma[1] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); _n_wgamma[2] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); _n_wgamma[3] += (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); } //std::cout<<"np:"<GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral())*np; //emuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral())*np; //mumuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral())*np; //sumsqtotnpError+=(np)*(np); //(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral())*np; //sumsqtotnpError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral())*np; //std::cout<<"np cumulative Abs errors"<GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral())*GetProportionalError((*it).c_str(), "MVA2_TMlpANN_cut1", TotalDYCutError); //this is the sum of the vector's backgrounds' proportions of the total DYNN Cut error. total_DYNNCut_Error[1]+= (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral())*GetProportionalError((*it).c_str(), "MVA2_TMlpANN_cut1_ee", TotalDYCutError); total_DYNNCut_Error[2]+= (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral())*GetProportionalError((*it).c_str(), "MVA2_TMlpANN_cut1_emu", TotalDYCutError); total_DYNNCut_Error[3]+= (((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral())*GetProportionalError((*it).c_str(), "MVA2_TMlpANN_cut1_mumu", TotalDYCutError); } double non_shape_errs[4] = {0.,0.,0.,0.}; for(int i=0; i<4; i++){ non_shape_errs[i] = sqrt( pow(_n_higgsww[i]*_np_higgsww,2) + pow(_n_ttbar[i]*_np_ttbar,2) + pow(_n_DY[i]*_np_DY,2) + pow(_n_VV[i]*_np_VV,2) + pow(_n_wgamma[i]*_np_wgamma,2) + pow(total_DYNNCut_Error[i],2) ); } //for printing out: double totevents[4] = {0.,0.,0.,0.}; double non_shape_fracerrs[4] = {0.,0.,0.,0.}; totevents[0]=(((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1") ->GetHist()))->Integral()); totevents[1]=(((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_ee") ->GetHist()))->Integral()); totevents[2]=(((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu") ->GetHist()))->Integral()); totevents[3]=(((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); for(int i=0; i<4; i++){ if(totevents[i]>0) non_shape_fracerrs[i]=non_shape_errs[i]/totevents[i]; } std::cout<<"non-shape errs: "<GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral(); double emunpError=emuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral(); double mumunpError=mumuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral();*/ //double totnpError=sqrt(sumsqtotnpError);//totAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral(); //if(eenpError!=eenpError)eenpError=0; //if(emunpError!=emunpError)emunpError=0; //if(mumunpError!=mumunpError)mumunpError=0; //if(totnpError!=totnpError)totnpError=0; //std::cout<<"np totalerrors: "<GetAnaHist("MVA2_TMlpANN_cut1") ->GetHist()))->Integral())*totError.AddQuadRelativeError(),2)); eeerrsum+= (pow((((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_ee") ->GetHist()))->Integral())*eeError.AddQuadRelativeError(),2)); emuerrsum+= (pow((((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu") ->GetHist()))->Integral())*emuError.AddQuadRelativeError(),2)); mumuerrsum+=(pow((((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral())*mumuError.AddQuadRelativeError(),2)); std::cout<<"shape errors: "<GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean(); double relLepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); double relLepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); double relLepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean(); double LepError_ee=( (TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_ee") ->GetHist()))->Integral()); double LepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu") ->GetHist()))->Integral()); double LepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); double LepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean() * (((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); eeerrsum+=(LepError_ee*LepError_ee); emuerrsum+=(LepError_emu*LepError_emu); mumuerrsum+=(LepError_mumu*LepError_mumu); toterrsum+=(LepError*LepError); std::cout<<"lepIDtrigisolerrors: (rel) "< errorsback; //errorsback.push_back(sqrt(toterrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); //errorsback.push_back(sqrt(eeerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); //errorsback.push_back(sqrt(emuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); //errorsback.push_back(sqrt(mumuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); // we are already dealing in n events, not fractional uncertainties: errorsback.push_back(sqrt(toterrsum)); errorsback.push_back(sqrt(eeerrsum)); errorsback.push_back(sqrt(emuerrsum)); errorsback.push_back(sqrt(mumuerrsum)); std::cout<<"totalrelerrors: "< TDSuperAna::GetNNSysError(std::vector syserrorvector) { std::cout<<"GetNNSysError"< errorhists_ee; errorhists_ee.push_back("MVA2_TMlpANN_cut1_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakeup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakedn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFdn_ee"); std::vector errorhists_emu; errorhists_emu.push_back("MVA2_TMlpANN_cut1_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakeup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakedn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFdn_emu"); std::vector errorhists_mumu; errorhists_mumu.push_back("MVA2_TMlpANN_cut1_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakeup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakedn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFdn_mumu"); bool start=true; TDHistSet * cumulatedhists; double eeAbsError=0; double emuAbsError=0; double mumuAbsError=0; double totAbsError=0; double np=0.059; double sumsqtotnpError=0; for(std::vector::iterator it=syserrorvector.begin(); it!=syserrorvector.end(); it++) { std::cout<<"in loop"<<(*it)<< std::endl; if(start) { cumulatedhists = new TDHistSet(*(HistSets->GetHistSet((*it).c_str()))); start=false; }else{ (*cumulatedhists)+=(*(HistSets->GetHistSet((*it).c_str()))); } if(*it=="higgsww"){np=0.032;} else if(*it=="WW"){np=0.059;} else if(*it=="ttbar"){np=0.07;} else if(*it=="Zee" || *it=="Zmumu" || *it=="Ztautau"){np=0.0;} //no extra errors in NN analysis. //np=0.306; if(_sexo)np=0.31;}//212;} std::cout<<"np:"<GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1ee")->GetHist()))->Integral())*np; //emuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1emu")->GetHist()))->Integral())*np; //mumuAbsError+=(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral())*np; sumsqtotnpError+=(np)*(np); //(((TH1F*)(HistSets->GetHistSet((*it).c_str())->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral())*np; std::cout<<"np cumulative Abs errors"<GetAnaHist("MVA2_TMlpANN_cut1ee")->GetHist()))->Integral(); double emunpError=emuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1emu")->GetHist()))->Integral(); double mumunpError=mumuAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral();*/ /*double totnpError=sqrt(sumsqtotnpError);//totAbsError/((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral(); //if(eenpError!=eenpError)eenpError=0; //if(emunpError!=emunpError)emunpError=0; //if(mumunpError!=mumunpError)mumunpError=0; if(totnpError!=totnpError)totnpError=0; std::cout<<"np totalerrors: "<GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean(); double LepError_emu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); double LepError_mumu=((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); double LepError=((*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_emu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_mumu")->GetHist())))+ (*((TH1F*)(cumulatedhists->GetAnaHist("RelWeightError_ee")->GetHist())))).GetMean(); eeerrsum+=(LepError_ee*LepError_ee); emuerrsum+=(LepError_emu*LepError_emu); mumuerrsum+=(LepError_mumu*LepError_mumu); toterrsum+=(LepError*LepError); std::cout<<"lepIDtrigisolerrors: "< errorsback; errorsback.push_back(sqrt(toterrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1")->GetHist()))->Integral()); errorsback.push_back(sqrt(eeerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()))->Integral()); errorsback.push_back(sqrt(emuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()))->Integral()); errorsback.push_back(sqrt(mumuerrsum)*((TH1F*)(cumulatedhists->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()))->Integral()); std::cout<<"totalrelerrors: "<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); std::vector temprelerrors; std::vector shapeerrornames; shapeerrornames.push_back("Jet Energy Scale"); shapeerrornames.push_back("Lepton Energy Scale"); shapeerrornames.push_back("Initial State Radiation"); shapeerrornames.push_back("Fake"); shapeerrornames.push_back("PDF"); std::vector errorhists_ee; errorhists_ee.push_back("MVA2_TMlpANN_cut1_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_JESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_LESdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_ISRdn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakeup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_Fakedn_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFup_ee"); errorhists_ee.push_back("MVA2_TMlpANN_cut1_PDFdn_ee"); std::vector errorhists_emu; errorhists_emu.push_back("MVA2_TMlpANN_cut1_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_JESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_LESdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_ISRdn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakeup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_Fakedn_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFup_emu"); errorhists_emu.push_back("MVA2_TMlpANN_cut1_PDFdn_emu"); std::vector errorhists_mumu; errorhists_mumu.push_back("MVA2_TMlpANN_cut1_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_JESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_LESdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_ISRdn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakeup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_Fakedn_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFup_mumu"); errorhists_mumu.push_back("MVA2_TMlpANN_cut1_PDFdn_mumu"); TDErrorHistSet SigeeError2("Sigee2","SigeeError2", "SigeeError2", CanvMan1, TomLikeSig, errorhists_ee); TDErrorHistSet SigemuError2("Sigemu2","SigemuError2", "SigemuError2", CanvMan1, TomLikeSig, errorhists_emu); TDErrorHistSet SigmumuError2("Sigmumu2","SigmumuError2", "SigmumuError2", CanvMan1, TomLikeSig, errorhists_mumu); TDErrorHistSet BkgeeError2("Bkgee2","BkgeeError2", "BkgeeError2", CanvMan1, TomLikeBG, errorhists_ee); TDErrorHistSet BkgemuError2("Bkgemu2","BkgemuError2", "BkgemuError2", CanvMan1, TomLikeBG, errorhists_emu); TDErrorHistSet BkgmumuError2("Bkgmumu2","BkgmumuError2", "BkgmumuError2", CanvMan1, TomLikeBG, errorhists_mumu); TDErrorHistSet WWeeError2("WWee2","WWeeError2", "WWeeError2", CanvMan1, TomLikeWW, errorhists_ee); TDErrorHistSet WWemuError2("WWemu2","WWemuError2", "WWemuError2", CanvMan1, TomLikeWW, errorhists_emu); TDErrorHistSet WWmumuError2("WWmumu2","WWmumuError2", "WWmumuError2", CanvMan1, TomLikeWW, errorhists_mumu); TDErrorHistSet Error(SigeeError2); Error+=SigemuError2; Error+=SigmumuError2; Error+=BkgeeError2; Error+=BkgemuError2; Error+=BkgmumuError2; Error+=WWeeError2; Error+=WWemuError2; Error+=WWmumuError2; temprelerrors=SigeeError2.RelativeErrors(); for(std::vector::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal ee NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal emu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Signal mumu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background ee NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background emu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"Background mumu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW ee NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW emu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"WW mumu NN relative Error is: "<<*it<::iterator it=temprelerrors.begin(); it!=temprelerrors.end(); it++) {std::cout<<"grand rel error is: "<<*it< errors; std::vector datasets; os<<" \\begin{table}[H]"< normaldatasets; normaldatasets.push_back("WW"); normaldatasets.push_back("WZ"); normaldatasets.push_back("ZZ"); normaldatasets.push_back("ttbar"); normaldatasets.push_back("wgamma"); normaldatasets.push_back("fake"); for(std::vector::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { std::cout<<*it<GetHistSet((*it).c_str())->GetAnaIt(eehist)))->GetHist()->Integral(),errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(emuhist)))->GetHist()->Integral(),errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(mumuhist)))->GetHist()->Integral(),errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(totalhist)))->GetHist()->Integral(),errors[0]); os<<*it<<" & "<GetHistSet("Zee")->GetAnaIt(eehist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt(eehist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt(eehist)))->GetHist()->Integral(), errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt(emuhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt(emuhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt(emuhist)))->GetHist()->Integral(), errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt(mumuhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt(mumuhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt(mumuhist)))->GetHist()->Integral(), errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("Zee")->GetAnaIt(totalhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Zmumu")->GetAnaIt(totalhist)))->GetHist()->Integral()+ (*(HistSets->GetHistSet("Ztautau")->GetAnaIt(totalhist)))->GetHist()->Integral(), errors[0]); os<<"Drell Yan"<<" & "<::iterator it=normaldatasets.begin(); it!=normaldatasets.end(); it++) { integralee+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(eehist)))->GetHist()->Integral(); integralemu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(emuhist)))->GetHist()->Integral(); integralmumu+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(mumuhist)))->GetHist()->Integral(); integral+=(*(HistSets->GetHistSet((*it).c_str())->GetAnaIt(totalhist)))->GetHist()->Integral(); } sprintf(bufferee,"%2.2f$pm$%2.2f",integralee,errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",integralemu,errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",integralmumu,errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",integral,errors[0]); os<<"Background Total"<<" & "<GetHistSet("higgsww")->GetAnaIt(eehist)))->GetHist()->Integral(),errors[1]); sprintf(bufferemu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt(emuhist)))->GetHist()->Integral(),errors[2]); sprintf(buffermumu,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt(mumuhist)))->GetHist()->Integral(),errors[3]); sprintf(buffertot,"%2.2f$pm$%2.2f",(*(HistSets->GetHistSet("higgsww")->GetAnaIt(totalhist)))->GetHist()->Integral(),errors[0]); os<<"Higgs to WW"<<" & "<GetHistSet("data")->GetAnaIt(eehist)))->GetHist()->Integral()); sprintf(bufferemu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt(emuhist)))->GetHist()->Integral()); sprintf(buffermumu,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt(mumuhist)))->GetHist()->Integral()); sprintf(buffertot,"%2.2f",(*(HistSets->GetHistSet("data")->GetAnaIt(totalhist)))->GetHist()->Integral()); os<<"data"<<" & "<GetHistSet("Zee"))); BG+=(*(HistSets->GetHistSet("Zmumu"))); BG+=(*(HistSets->GetHistSet("Ztautau"))); BG+=(*(HistSets->GetHistSet("wgamma"))); BG+=(*(HistSets->GetHistSet("ttbar"))); BG+=(*(HistSets->GetHistSet("WW"))); BG+=(*(HistSets->GetHistSet("WZ"))); BG+=(*(HistSets->GetHistSet("ZZ"))); BG+=(*(HistSets->GetHistSet("fake"))); TDHistSet signal(*(HistSets->GetHistSet("higgsww"))); TH1F bkgr=*((TH1F*)(BG.GetAnaHist(variablehist)->GetHist())); TH1F sig=*((TH1F*)(signal.GetAnaHist(variablehist)->GetHist())); double sigtot=0; double backtot=0; double srb=0; double maxsrb=0; double bestcut=0; for(int bin=bkgr.GetNbinsX(); bin!=0; --bin) { sigtot+=sig.GetBinContent(bin); backtot+=bkgr.GetBinContent(bin); if(backtot!=0)srb=sigtot/sqrt(backtot); if(maxsrbGetHistSet("higgsww")->GetAnaHist(variablehist2)->GetHist()->SetBinContent(bin, srb); } std::cout<<"maxsrb: "<GetHistSet("Zee"))); BG+=(*(HistSets->GetHistSet("Zmumu"))); BG+=(*(HistSets->GetHistSet("Ztautau"))); // BG+=(*(HistSets->GetHistSet("wgamma"))); // BG+=(*(HistSets->GetHistSet("ttbar"))); // BG+=(*(HistSets->GetHistSet("WW"))); // BG+=(*(HistSets->GetHistSet("WZ"))); // BG+=(*(HistSets->GetHistSet("ZZ"))); // BG+=(*(HistSets->GetHistSet("fake"))); TDHistSet signal(*(HistSets->GetHistSet("higgsww"))); TH1F bkgr=*((TH1F*)(BG.GetAnaHist(variablehist)->GetHist())); TH1F sig=*((TH1F*)(signal.GetAnaHist(variablehist)->GetHist())); double sigtot=0; double backtot=0; double srb=0; double maxsrb=0; double bestcut=0; for(int bin=bkgr.GetNbinsX(); bin!=0; --bin) { sigtot+=sig.GetBinContent(bin); backtot+=bkgr.GetBinContent(bin); if(backtot!=0)srb=sigtot/sqrt(backtot); if(maxsrbGetHistSet("higgsww")->GetAnaHist(variablehist2)->GetHist()->SetBinContent(bin, srb); } std::cout<<"maxsrb: "<GetHistSet("Zee"))); TomLikeBG+=(*(HistSets->GetHistSet("Zmumu"))); TomLikeBG+=(*(HistSets->GetHistSet("Ztautau"))); //TomLikeBG+=(*(HistSets->GetHistSet("wgamma"))); TomLikeBG+=(*(HistSets->GetHistSet("ttbar"))); //TomLikeBG+=(*(HistSets->GetHistSet("WW"))); TomLikeBG+=(*(HistSets->GetHistSet("WZ"))); TomLikeBG+=(*(HistSets->GetHistSet("ZZ"))); TomLikeBG+=(*(HistSets->GetHistSet("fake"))); TDHistSet TomLikeWW(*(HistSets->GetHistSet("WW"))); TDHistSet TomLikeSig(*(HistSets->GetHistSet("higgsww"))); TDHistSet TomLikeWG(*(HistSets->GetHistSet("wgamma"))); TH1F * bkgree=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * WWbkgree=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * sigee=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * dataee=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * WGbkgree=(TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ee")->GetHist()); TH1F * bkgremu=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * WWbkgremu=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * sigemu=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * dataemu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * WGbkgremu=(TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_emu")->GetHist()); TH1F * bkgrmumu=(TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * WWbkgrmumu=(TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * sigmumu=(TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * datamumu=(TH1F*)((HistSets->GetHistSet("data"))->GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); TH1F * WGbkgrmumu=(TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_mumu")->GetHist()); std::cout<<"TomLikelihoodemu() NNshape emu"<AddAnaHist(new TDAnaHist("likehist_emu_wgam_MVA2_TMlpANN_cut1", "toms code MVA2_TMlpANN_cut1 emu wgam likelihood plot", 0, 20, 50, "", "")); _superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_wgam_MVA2_TMlpANN_cut1_10", "toms code MVA2_TMlpANN_cut1 emu wgam likelihood plot_10", 0, 10, 50, "", "")); //_superAnaHists->AddAnaHist(new TDAnaHist("likehist_emu_xs", "toms code dilphi emu likelihood plot withxs", 0, 20, 50, "", "")); char *ername[15]; double serr_mumu[15]; double sderr_mumu[15]; double wwerr_mumu[15]; double wwderr_mumu[15]; double bgerr_mumu[15]; double bgderr_mumu[15]; double wgerr_mumu[15]; double wgderr_mumu[15]; double serr_ee[15]; double sderr_ee[15]; double wwerr_ee[15]; double wwderr_ee[15]; double bgerr_ee[15]; double bgderr_ee[15]; double wgerr_ee[15]; double wgderr_ee[15]; double serr_emu[15]; double sderr_emu[15]; double wwerr_emu[15]; double wwderr_emu[15]; double bgerr_emu[15]; double bgderr_emu[15]; double wgerr_emu[15]; double wgderr_emu[15]; //n sname = new char[strlen("LUMI")+1]; // strcpy(sname,"LUMI"); // chanresult->sysname.push_back(sname); ername[0] = "LUMI"; serr_emu[0] = serr_mumu[0] = serr_ee[0] = 0.04; sderr_emu[0] = sderr_mumu[0] = sderr_ee[0] = -0.04; wwerr_emu[0] = wwerr_mumu[0] = wwerr_ee[0] = 0.04; wwderr_emu[0] = wwderr_mumu[0] = wwderr_ee[0] = -0.04; bgerr_emu[0] = bgerr_mumu[0] = bgerr_ee[0] = 0.04; bgderr_emu[0] = bgderr_mumu[0] = bgderr_ee[0] = -0.04; wgerr_emu[0] = wgerr_mumu[0] = wgerr_ee[0] = 0.04; wgderr_emu[0] = wgderr_mumu[0] = wgderr_ee[0] = -0.04; // uncorrelated part of lumi error //sname = new char[strlen("CDFLUMI")+1]; //strcpy(sname,"CDFLUMI"); //chanresult->sysname.push_back(sname); ername[1] = "CDFLUMI"; serr_emu[1] = serr_mumu[1] = serr_ee[1] = 0.04; sderr_emu[1] = sderr_mumu[1] = sderr_ee[1] = -0.04; wwerr_emu[1] = wwerr_mumu[1] = wwerr_ee[1] = 0.04; wwderr_emu[1] = wwderr_mumu[1] = wwderr_ee[1] = -0.04; bgerr_emu[1] = bgerr_mumu[1] = bgerr_ee[1] = 0.04; bgderr_emu[1] = bgderr_mumu[1] = bgderr_ee[1] = -0.04; wgerr_emu[1] = wgerr_mumu[1] = wgerr_ee[1] = 0.04; wgderr_emu[1] = wgderr_mumu[1] = wgderr_ee[1] = -0.04; //sname = new char[strlen("CDFLEPTRIGGER")+1]; //strcpy(sname,"CDFLEPTRIGGER"); //chanresult->sysname.push_back(sname); ername[2] = "CDFLEPTRIGGER"; serr_emu[2] = serr_mumu[2] = serr_ee[2] = 0.00;//0.01; sderr_emu[2] = sderr_mumu[2] = sderr_ee[2] = 0.00;//-0.01; wwerr_emu[2] = wwerr_mumu[2] = wwerr_ee[2] = 0.00;//0.01; wwderr_emu[2] = wwderr_mumu[2] = wwderr_ee[2] = 0.00;//-0.01; bgerr_emu[2] = bgerr_mumu[2] = bgerr_ee[2] = 0.00; bgderr_emu[2] = bgderr_mumu[2] = bgderr_ee[2] = -0.00; wgerr_emu[2] = wgerr_mumu[2] = wgerr_ee[2] = 0.00;//0.01; wgderr_emu[2] = wgderr_mumu[2] = wgderr_ee[2] = 0.00;//-0.01; //sname = new char[strlen("ISR")+1]; //strcpy(sname,"ISR"); //chanresult->sysname.push_back(sname); ername[3] = "ISR"; serr_emu[3] = serr_mumu[3] = serr_ee[3] = 0.0;// 0.03; //TD now in shape error hists. sderr_emu[3] = sderr_mumu[3] = sderr_ee[3] = 0.0;//-0.03; wwerr_emu[3] = wwerr_mumu[3] = wwerr_ee[3] = 0.0;//0.03; // not estimated in CDF 7708 wwderr_emu[3] = wwderr_mumu[3] = wwderr_ee[3] = 0.0;//-0.03; // not estimated in CDF 7708 bgerr_emu[3] = bgerr_mumu[3] = bgerr_ee[3] = 0.0;//0.02; // partly estimated in CDF 7708 bgderr_emu[3] = bgderr_mumu[3] = bgderr_ee[3] = 0.0;//-0.02; // partly estimated in CDF 7708 wgerr_emu[3] = wgerr_mumu[3] = wgerr_ee[3] = 0.0;//0.03; // not estimated in CDF 7708 wgderr_emu[3] = wgderr_mumu[3] = wgderr_ee[3] = 0.0;//-0.03; // not estimated in CDF 7708 //sname = new char[strlen("PDF")+1]; //strcpy(sname,"PDF"); //chanresult->sysname.push_back(sname); ername[4] = "PDF"; serr_emu[4] = serr_mumu[4] = serr_ee[4] = 0.0;//0.03; sderr_emu[4] = sderr_mumu[4] = sderr_ee[4] = 0.0;//-0.03; wwerr_emu[4] = wwerr_mumu[4] = wwerr_ee[4] = 0.0;//0.06; wwderr_emu[4] = wwderr_mumu[4] = wwderr_ee[4] = 0.0;//-0.06; bgerr_emu[4] = bgerr_mumu[4] = bgerr_ee[4] = 0.0;//0.04; bgderr_emu[4] = bgderr_mumu[4] = bgderr_ee[4] = 0.0;//-0.04; wgerr_emu[4] = wgerr_mumu[4] = wgerr_ee[4] = 0.0;//0.06; wgderr_emu[4] = wgderr_mumu[4] = wgderr_ee[4] = 0.0;//-0.06; //sname = new char[strlen("CDFJES")+1]; //strcpy(sname,"CDFJES"); //chanresult->sysname.push_back(sname); ername[5] = "CDFJES"; serr_emu[5] = serr_mumu[5] = serr_ee[5] = 0.0;//0.01; sderr_emu[5] = sderr_mumu[5] = sderr_ee[5] = 0.0;//-0.01; wwerr_emu[5] = wwerr_mumu[5] = wwerr_ee[5] = 0.0;//0.01; wwderr_emu[5] = wwderr_mumu[5] = wwderr_ee[5] = 0.0;//-0.01; bgerr_emu[5] = bgerr_mumu[5] = bgerr_ee[5] = 0.0;//0.02; // mostly from fakes bgderr_emu[5] = bgderr_mumu[5] = bgderr_ee[5] = 0.0;//-0.02; // mostly from fakes wgerr_emu[5] = wgerr_mumu[5] = wgerr_ee[5] = 0.0;//0.01; wgderr_emu[5] = wgderr_mumu[5] = wgderr_ee[5] = 0.0;//-0.01; //sname = new char[strlen("CDFTRKISO")+1]; //strcpy(sname,"CDFTRKISO"); //chanresult->sysname.push_back(sname); /* ername[6] = "CDFTRKISO"; serr_emu[6] = serr_mumu[6] = serr_ee[6] = 0.00;//0.02; sderr_emu[6] = sderr_mumu[6] = sderr_ee[6] = 0.00;//-0.02; wwerr_emu[6] = wwerr_mumu[6] = wwerr_ee[6] = 0.00;//0.02; wwderr_emu[6] = wwderr_mumu[6] = wwderr_ee[6] = 0.00;//-0.02; bgerr_emu[6] = bgerr_mumu[6] = bgerr_ee[6] = 0.00;//0.02; // partly estimated in CDF 7708 bgderr_emu[6] = bgderr_mumu[6] = bgderr_ee[6] = 0.00;//-0.02; // partly estimated in CDF 7708 wgerr_emu[6] = wgerr_mumu[6] = wgerr_ee[6] = 0.00;//0.02; wgderr_emu[6] = wgderr_mumu[6] = wgderr_ee[6] = 0.00;//-0.02;*/ //poached from CDFTRKISO error. std::vector DYerrors=GetemuBkgDYError(&TomLikeBG, "MVA2_TMlpANN_cut1","MVA2_TMlpANN_cut1_ee","MVA2_TMlpANN_cut1_emu","MVA2_TMlpANN_cut1_mumu", 0.3); ername[6] = "CDFDYMET"; serr_emu[6] = serr_mumu[6] = serr_ee[6] = 0.00; sderr_emu[6] = sderr_mumu[6] = sderr_ee[6] = 0.00; wwerr_emu[6] = wwerr_mumu[6] = wwerr_ee[6] = 0.00; wwderr_emu[6] = wwderr_mumu[6] = wwderr_ee[6] = 0.00; bgerr_emu[6]= DYerrors[2]; bgerr_mumu[6] = DYerrors[3]; bgerr_ee[6] = DYerrors[1]; bgderr_emu[6] = -DYerrors[2]; bgderr_mumu[6] = -DYerrors[3]; bgderr_ee[6] = -DYerrors[1]; wgerr_emu[6] = wgerr_mumu[6] = wgerr_ee[6] = 0.00; wgderr_emu[6] = wgderr_mumu[6] = wgderr_ee[6] = 0.00; //sname = new char[strlen("ALPHAS")+1]; //strcpy(sname,"ALPHAS"); //chanresult->sysname.push_back(sname); ername[7] = "ALPHAS"; serr_emu[7] = serr_mumu[7] = serr_ee[7] = 0.00;// //due to the xs floating in the likelihood fit, we don't htink this is needed: 0.03; sderr_emu[7] = sderr_mumu[7] = sderr_ee[7] = 0.00;// //due to the xs floating in the likelihood fit, we don't htink this is needed: -0.03; wwerr_emu[7] = wwerr_mumu[7] = wwerr_ee[7] = 0.0; wwderr_emu[7] = wwderr_mumu[7] = wwderr_ee[7] = 0.0; bgerr_emu[7] = bgerr_mumu[7] = bgerr_ee[7] = 0.0; bgderr_emu[7] = bgderr_mumu[7] = bgderr_ee[7] = 0.0; wgerr_emu[7] = wgerr_mumu[7] = wgerr_ee[7] = 0.0; wgderr_emu[7] = wgderr_mumu[7] = wgderr_ee[7] = 0.0; //sname = new char[strlen("CDFLEPTID")+1]; //strcpy(sname,"CDFLEPTID"); //chanresult->sysname.push_back(sname); ername[8] = "CDFLEPTID"; serr_emu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); serr_mumu[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); serr_ee[8] = ((TH1F*)(TomLikeSig.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; sderr_emu[8] = -serr_emu[8]; sderr_mumu[8] = -serr_mumu[8]; sderr_ee[8] = -serr_ee[8]; //-0.02; wwerr_emu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); wwerr_mumu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); wwerr_ee[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; wwderr_emu[8] = -wwerr_emu[8]; wwderr_mumu[8] = -wwerr_mumu[8]; wwderr_ee[8] = -wwerr_ee[8];//-0.02; bgerr_emu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); bgerr_mumu[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); bgerr_ee[8] = ((TH1F*)(TomLikeBG.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; bgderr_emu[8] = -bgerr_emu[8]; bgderr_mumu[8] = -bgerr_mumu[8]; bgderr_ee[8] = -bgerr_ee[8];//-0.02; wgerr_emu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_emu")->GetHist()))->GetMean(); wgerr_mumu[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_mumu")->GetHist()))->GetMean(); wgerr_ee[8] = ((TH1F*)(TomLikeWW.GetAnaHist("RelWeightError_ee")->GetHist()))->GetMean();//0.02; wgderr_emu[8] = -wgerr_emu[8]; wgderr_mumu[8] = -wgerr_mumu[8]; wgderr_ee[8] = -wgerr_ee[8];//-0.02; std::cout<sysname.push_back(sname); ername[9] = "CDFFAKERATE"; serr_emu[9] = serr_mumu[9] = serr_ee[9] = 0.0; sderr_emu[9] = sderr_mumu[9] = sderr_ee[9] = 0.0; wwerr_emu[9] = wwerr_mumu[9] = wwerr_ee[9] = 0.0; wwderr_emu[9] = wwderr_mumu[9] = wwderr_ee[9] = 0.0; bgerr_emu[9] = bgerr_mumu[9] = bgerr_ee[9] = 0.0; //TD fake in shape hists 0.05; // 50% error on fakes, which are 10% of background bgderr_emu[9] = bgderr_mumu[9] = bgderr_ee[9] = 0.0;//TD fake in shape hists -0.05; // 50% error on fakes, which are 10% of background wwerr_emu[9] = wwerr_mumu[9] = wwerr_ee[9] = 0.0; wwderr_emu[9] = wwderr_mumu[9] = wwderr_ee[9] = 0.0; //sname = new char[strlen("NNLO")+1]; //strcpy(sname,"NNLO"); //chanresult->sysname.push_back(sname); /*ername[10] = "NNLO"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.0; //due to the xs floating in the likelihood fit, we don't htink this is needed: 0.1; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = 0.0; //due to the xs floating in the likelihood fit, we don't htink this is needed:-0.1; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; bgerr_emu[10] = bgerr_mumu[10] = bgerr_ee[10] = 0.0; bgderr_emu[10] = bgderr_mumu[10] = bgderr_ee[10] = 0.0;*/ //I have poached error #10 to make it into the wgamma error. ername[10] = "wgamma"; serr_emu[10] = serr_mumu[10] = serr_ee[10] = 0.0; sderr_emu[10] = sderr_mumu[10] = sderr_ee[10] = 0.0; wwerr_emu[10] = wwerr_mumu[10] = wwerr_ee[10] = 0.0; wwderr_emu[10] = wwderr_mumu[10] = wwderr_ee[10] = 0.0; bgerr_emu[10] = bgerr_mumu[10] = bgerr_ee[10] = 0.0; bgderr_emu[10] = bgderr_mumu[10] = bgderr_ee[10] = 0.0; wgerr_emu[10] = wgerr_mumu[10] = wgerr_ee[10] = 0.20; wgderr_emu[10] = wgderr_mumu[10] = wgderr_ee[10] = -0.20; //sname = new char[strlen("CDFJETVETO")+1]; //strcpy(sname,"CDFJETVETO"); //chanresult->sysname.push_back(sname); ername[11] = "CDFJETVETO"; serr_emu[11] = serr_mumu[11] = serr_ee[11] = 0.0; sderr_emu[11] = sderr_mumu[11] = sderr_ee[11] = 0.0; wwerr_emu[11] = wwerr_mumu[11] = wwerr_ee[11] = 0.06; wwderr_emu[11] = wwderr_mumu[11] = wwderr_ee[11] = -0.06; bgerr_emu[11] = bgerr_mumu[11] = bgerr_ee[11] = 0.0; bgderr_emu[11] = bgderr_mumu[11] = bgderr_ee[11] = 0.0; wgerr_emu[11] = wgerr_mumu[11] = wgerr_ee[11] = 0.0; wgderr_emu[11] = wgderr_mumu[11] = wgderr_ee[11] = 0.0; //sname = new char[strlen("GENERATOR")+1]; //strcpy(sname,"GENERATOR"); //chanresult->sysname.push_back(sname); ername[12] = "GENERATOR"; serr_emu[12] = serr_mumu[12] = serr_ee[12] = 0.0; sderr_emu[12] = sderr_mumu[12] = sderr_ee[12] = 0.0; wwerr_emu[12] = wwerr_mumu[12] = wwerr_ee[12] = 0.04; wwderr_emu[12] = wwderr_mumu[12] = wwderr_ee[12] = -0.04; bgerr_emu[12] = bgerr_mumu[12] = bgerr_ee[12] = 0.06; bgderr_emu[12] = bgderr_mumu[12] = bgderr_ee[12] = -0.06; wgerr_emu[12] = wgerr_mumu[12] = wgerr_ee[12] = 0.00; wgderr_emu[12] = wgderr_mumu[12] = wgderr_ee[12] = -0.00; //sname = new char[strlen("CDFDYMET")+1]; //strcpy(sname,"CDFDYMET"); //chanresult->sysname.push_back(sname); ername[13] = "CDFDYCUT"; serr_emu[13] = serr_mumu[13] = serr_ee[13] = 0.0; sderr_emu[13] = sderr_mumu[13] = sderr_ee[13] = 0.0; wwerr_emu[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); wwerr_mumu[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_mumu", 0.2); wwerr_ee[13] = GetProportionalError("WW", "MVA_TMlpANN_cut1_ee", 0.2); //wwerr_emu[13] = wwerr_mumu[13] = wwerr_ee[13] = 0.0; //wwderr_emu[13] = wwderr_mumu[13] = wwderr_ee[13] = 0.0; wwderr_emu[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_emu", 0.2); wwderr_mumu[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_mumu", 0.2); wwderr_ee[13] = -GetProportionalError("WW", "MVA_TMlpANN_cut1_ee", 0.2); wgerr_emu[13] = GetProportionalError("wgamma", "MVA_TMlpANN_cut1_emu", 0.2); wgerr_mumu[13] = GetProportionalError("wgamma", "MVA_TMlpANN_cut1_mumu", 0.2); wgerr_ee[13] = GetProportionalError("wgamma", "MVA_TMlpANN_cut1_ee", 0.2); //wgerr_emu[13] = wgerr_mumu[13] = wgerr_ee[13] = 0.0; //wgderr_emu[13] = wgderr_mumu[13] = wgderr_ee[13] = 0.0; wgderr_emu[13] = -GetProportionalError("wgamma", "MVA_TMlpANN_cut1_emu", 0.2); wgderr_mumu[13] = -GetProportionalError("wgamma", "MVA_TMlpANN_cut1_mumu", 0.2); wgderr_ee[13] = -GetProportionalError("wgamma", "MVA_TMlpANN_cut1_ee", 0.2); bgerr_emu[13] = 0.2-wwerr_emu[13]-wgerr_emu[13]; bgerr_mumu[13] = 0.2-wwerr_mumu[13]-wgerr_mumu[13]; bgerr_ee[13] = 0.2-wwerr_ee[13]-wgerr_ee[13]; bgderr_emu[13] = -bgerr_emu[13]; bgderr_mumu[13] = -bgerr_mumu[13]; bgderr_ee[13] = -bgerr_ee[13]; std::cout<GetHist()); sigdownshape_ee[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); sigupshapesigma_ee[5] = 1; sigdownshapesigma_ee[5] = -1; wwupshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_ee")->GetHist()); wwdownshape_ee[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); wwupshapesigma_ee[5] = 1; wwdownshapesigma_ee[5] = -1; bgupshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_ee")->GetHist()); bgdownshape_ee[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); bgupshapesigma_ee[5] = 1; bgdownshapesigma_ee[5] = -1; wgupshape_ee[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_ee")->GetHist()); wgdownshape_ee[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_ee")->GetHist()); wgupshapesigma_ee[5] = 1; wgdownshapesigma_ee[5] = -1; sigupshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); sigdownshape_emu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); sigupshapesigma_emu[5] = 1; sigdownshapesigma_emu[5] = -1; wwupshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); wwdownshape_emu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); wwupshapesigma_emu[5] = 1; wwdownshapesigma_emu[5] = -1; bgupshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); bgdownshape_emu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); bgupshapesigma_emu[5] = 1; bgdownshapesigma_emu[5] = -1; wgupshape_emu[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_emu")->GetHist()); wgdownshape_emu[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_emu")->GetHist()); wgupshapesigma_emu[5] = 1; wgdownshapesigma_emu[5] = -1; sigupshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); sigdownshape_mumu[5] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); sigupshapesigma_mumu[5] = 1; sigdownshapesigma_mumu[5] = -1; wwupshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); wwdownshape_mumu[5] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); wwupshapesigma_mumu[5] = 1; wwdownshapesigma_mumu[5] = -1; bgupshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); bgdownshape_mumu[5] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); bgupshapesigma_mumu[5] = 1; bgdownshapesigma_mumu[5] = -1; wgupshape_mumu[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESup_mumu")->GetHist()); wgdownshape_mumu[5] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_JESdn_mumu")->GetHist()); wgupshapesigma_mumu[5] = 1; wgdownshapesigma_mumu[5] = -1; //TD Lepton Energy Scale Shape Errors sigupshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); sigdownshape_ee[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); sigupshapesigma_ee[14] = 1; sigdownshapesigma_ee[14] = -1; wwupshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); wwdownshape_ee[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); wwupshapesigma_ee[14] = 1; wwdownshapesigma_ee[14] = -1; bgupshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); bgdownshape_ee[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); bgupshapesigma_ee[14] = 1; bgdownshapesigma_ee[14] = -1; wgupshape_ee[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_ee")->GetHist()); wgdownshape_ee[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_ee")->GetHist()); wgupshapesigma_ee[14] = 1; wgdownshapesigma_ee[14] = -1; sigupshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); sigdownshape_emu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); sigupshapesigma_emu[14] = 1; sigdownshapesigma_emu[14] = -1; wwupshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); wwdownshape_emu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); wwupshapesigma_emu[14] = 1; wwdownshapesigma_emu[14] = -1; bgupshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); bgdownshape_emu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); bgupshapesigma_emu[14] = 1; bgdownshapesigma_emu[14] = -1; wgupshape_emu[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_emu")->GetHist()); wgdownshape_emu[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_emu")->GetHist()); wgupshapesigma_emu[14] = 1; wgdownshapesigma_emu[14] = -1; sigupshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); sigdownshape_mumu[14] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); sigupshapesigma_mumu[14] = 1; sigdownshapesigma_mumu[14] = -1; wwupshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); wwdownshape_mumu[14] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); wwupshapesigma_mumu[14] = 1; wwdownshapesigma_mumu[14] = -1; bgupshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); bgdownshape_mumu[14] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); bgupshapesigma_mumu[14] = 1; bgdownshapesigma_mumu[14] = -1; wgupshape_mumu[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESup_mumu")->GetHist()); wgdownshape_mumu[14] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_LESdn_mumu")->GetHist()); wgupshapesigma_mumu[14] = 1; wgdownshapesigma_mumu[14] = -1; //TD PDF Shape errors sigupshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); sigdownshape_ee[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); sigupshapesigma_ee[4] = 1; sigdownshapesigma_ee[4] = -1; wwupshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); wwdownshape_ee[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); wwupshapesigma_ee[4] = 1; wwdownshapesigma_ee[4] = -1; bgupshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); bgdownshape_ee[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); bgupshapesigma_ee[4] = 1; bgdownshapesigma_ee[4] = -1; wgupshape_ee[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_ee")->GetHist()); wgdownshape_ee[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_ee")->GetHist()); wgupshapesigma_ee[4] = 1; wgdownshapesigma_ee[4] = -1; sigupshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); sigdownshape_emu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); sigupshapesigma_emu[4] = 1; sigdownshapesigma_emu[4] = -1; wwupshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); wwdownshape_emu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); wwupshapesigma_emu[4] = 1; wwdownshapesigma_emu[4] = -1; bgupshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); bgdownshape_emu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); bgupshapesigma_emu[4] = 1; bgdownshapesigma_emu[4] = -1; wgupshape_emu[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_emu")->GetHist()); wgdownshape_emu[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_emu")->GetHist()); wgupshapesigma_emu[4] = 1; wgdownshapesigma_emu[4] = -1; sigupshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); sigdownshape_mumu[4] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); sigupshapesigma_mumu[4] = 1; sigdownshapesigma_mumu[4] = -1; wwupshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); wwdownshape_mumu[4] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); wwupshapesigma_mumu[4] = 1; wwdownshapesigma_mumu[4] = -1; bgupshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); bgdownshape_mumu[4] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); bgupshapesigma_mumu[4] = 1; bgdownshapesigma_mumu[4] = -1; wgupshape_mumu[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFup_mumu")->GetHist()); wgdownshape_mumu[4] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_PDFdn_mumu")->GetHist()); wgupshapesigma_mumu[4] = 1; wgdownshapesigma_mumu[4] = -1; //TD ISR Shape errors sigupshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); sigdownshape_ee[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); sigupshapesigma_ee[3] = 1; sigdownshapesigma_ee[3] = -1; wwupshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); wwdownshape_ee[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); wwupshapesigma_ee[3] = 1; wwdownshapesigma_ee[3] = -1; bgupshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); bgdownshape_ee[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); bgupshapesigma_ee[3] = 1; bgdownshapesigma_ee[3] = -1; wgupshape_ee[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_ee")->GetHist()); wgdownshape_ee[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_ee")->GetHist()); wgupshapesigma_ee[3] = 1; wgdownshapesigma_ee[3] = -1; sigupshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); sigdownshape_emu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); sigupshapesigma_emu[3] = 1; sigdownshapesigma_emu[3] = -1; wwupshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); wwdownshape_emu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); wwupshapesigma_emu[3] = 1; wwdownshapesigma_emu[3] = -1; bgupshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); bgdownshape_emu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); bgupshapesigma_emu[3] = 1; bgdownshapesigma_emu[3] = -1; wgupshape_emu[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_emu")->GetHist()); wgdownshape_emu[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_emu")->GetHist()); wgupshapesigma_emu[3] = 1; wgdownshapesigma_emu[3] = -1; sigupshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); sigdownshape_mumu[3] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); sigupshapesigma_mumu[3] = 1; sigdownshapesigma_mumu[3] = -1; wwupshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); wwdownshape_mumu[3] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); wwupshapesigma_mumu[3] = 1; wwdownshapesigma_mumu[3] = -1; bgupshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); bgdownshape_mumu[3] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); bgupshapesigma_mumu[3] = 1; bgdownshapesigma_mumu[3] = -1; wgupshape_mumu[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRup_mumu")->GetHist()); wgdownshape_mumu[3] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_ISRdn_mumu")->GetHist()); wgupshapesigma_mumu[3] = 1; wgdownshapesigma_mumu[3] = -1; //TD Fake shape errors (there mst be a way to handle these properly) sigupshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); sigdownshape_ee[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); sigupshapesigma_ee[9] = 1; sigdownshapesigma_ee[9] = -1; wwupshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); wwdownshape_ee[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); wwupshapesigma_ee[9] = 1; wwdownshapesigma_ee[9] = -1; bgupshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); bgdownshape_ee[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); bgupshapesigma_ee[9] = 1; bgdownshapesigma_ee[9] = -1; wgupshape_ee[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_ee")->GetHist()); wgdownshape_ee[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_ee")->GetHist()); wgupshapesigma_ee[9] = 1; wgdownshapesigma_ee[9] = -1; sigupshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); sigdownshape_emu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); sigupshapesigma_emu[9] = 1; sigdownshapesigma_emu[9] = -1; wwupshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); wwdownshape_emu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); wwupshapesigma_emu[9] = 1; wwdownshapesigma_emu[9] = -1; bgupshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); bgdownshape_emu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); bgupshapesigma_emu[9] = 1; bgdownshapesigma_emu[9] = -1; wgupshape_emu[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_emu")->GetHist()); wgdownshape_emu[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_emu")->GetHist()); wgupshapesigma_emu[9] = 1; wgdownshapesigma_emu[9] = -1; sigupshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); sigdownshape_mumu[9] = (TH1F*)(TomLikeSig.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); sigupshapesigma_mumu[9] = 1; sigdownshapesigma_mumu[9] = -1; wwupshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); wwdownshape_mumu[9] = (TH1F*)(TomLikeWW.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); wwupshapesigma_mumu[9] = 1; wwdownshapesigma_mumu[9] = -1; bgupshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); bgdownshape_mumu[9] = (TH1F*)(TomLikeBG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); bgupshapesigma_mumu[9] = 1; bgdownshapesigma_mumu[9] = -1; wgupshape_mumu[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakeup_mumu")->GetHist()); wgdownshape_mumu[9] = (TH1F*)(TomLikeWG.GetAnaHist("MVA2_TMlpANN_cut1_Fakedn_mumu")->GetHist()); wgupshapesigma_mumu[9] = 1; wgdownshapesigma_mumu[9] = -1; //ee channel nullhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(bkgree,1.0,15,ername,bgderr_ee,bgerr_ee, bgdownshape_ee,bgdownshapesigma_ee,bgupshape_ee,bgupshapesigma_ee,0,0,"Channel ee"); nullhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(WWbkgree,1.0,15,ername,wwderr_ee,wwerr_ee, wwdownshape_ee,wwdownshapesigma_ee,wwupshape_ee,wwupshapesigma_ee,0,0,"Channel ee"); nullhyp->add_template(WGbkgree,1.0,15,ername,wgderr_ee,wgerr_ee, wgdownshape_ee,wgdownshapesigma_ee,wgupshape_ee,wgupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(WGbkgree,1.0,15,ername,wgderr_ee,wgerr_ee, wgdownshape_ee,wgdownshapesigma_ee,wgupshape_ee,wgupshapesigma_ee,0,0,"Channel ee"); testhyp->add_template(sigee,1.0,15,ername,sderr_ee,serr_ee, sigdownshape_ee,sigdownshapesigma_ee,sigupshape_ee,sigupshapesigma_ee,0,1,"Channel ee"); //emu channel nullhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(bkgremu,1.0,15,ername,bgderr_emu,bgerr_emu, bgdownshape_emu,bgdownshapesigma_emu,bgupshape_emu,bgupshapesigma_emu,0,0,"Channel emu"); nullhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(WWbkgremu,1.0,15,ername,wwderr_emu,wwerr_emu, wwdownshape_emu,wwdownshapesigma_emu,wwupshape_emu,wwupshapesigma_emu,0,0,"Channel emu"); nullhyp->add_template(WGbkgremu,1.0,15,ername,wgderr_emu,wgerr_emu, wgdownshape_emu,wgdownshapesigma_emu,wgupshape_emu,wgupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(WGbkgremu,1.0,15,ername,wgderr_emu,wgerr_emu, wgdownshape_emu,wgdownshapesigma_emu,wgupshape_emu,wgupshapesigma_emu,0,0,"Channel emu"); testhyp->add_template(sigemu,1.0,15,ername,sderr_emu,serr_emu, sigdownshape_emu,sigdownshapesigma_emu,sigupshape_emu,sigupshapesigma_emu,0,1,"Channel emu"); //mumu channel nullhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(bkgrmumu,1.0,15,ername,bgderr_mumu,bgerr_mumu, bgdownshape_mumu,bgdownshapesigma_mumu,bgupshape_mumu,bgupshapesigma_mumu,0,0,"Channel mumu"); nullhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(WWbkgrmumu,1.0,15,ername,wwderr_mumu,wwerr_mumu, wwdownshape_mumu,wwdownshapesigma_mumu,wwupshape_mumu,wwupshapesigma_mumu,0,0,"Channel mumu"); nullhyp->add_template(WGbkgrmumu,1.0,15,ername,wgderr_mumu,wgerr_mumu, wgdownshape_mumu,wgdownshapesigma_mumu,wgupshape_mumu,wgupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(WGbkgrmumu,1.0,15,ername,wgderr_mumu,wgerr_mumu, wgdownshape_mumu,wgdownshapesigma_mumu,wgupshape_mumu,wgupshapesigma_mumu,0,0,"Channel mumu"); testhyp->add_template(sigmumu,1.0,15,ername,sderr_mumu,serr_mumu, sigdownshape_mumu,sigdownshapesigma_mumu,sigupshape_mumu,sigupshapesigma_mumu,0,1,"Channel mumu"); csm_model* nullhyp_pe = nullhyp->Clone(); csm_model* testhyp_pe = testhyp->Clone(); TCanvas * mycanvas = (TCanvas *) new TCanvas("Canvasemu","Canvasemu"); mycanvas->Divide(3,2); mycanvas->cd(1); testhyp->plotwithdata("Channel ee",dataee ); mycanvas->cd(2); testhyp->plotwithdata("Channel emu",dataemu ); mycanvas->cd(3); testhyp->plotwithdata("Channel mumu",datamumu ); csm* mycsm = new csm(); mycsm->set_htofit( dataee , "Channel ee"); mycsm->set_htofit( dataemu , "Channel emu"); mycsm->set_htofit( datamumu , "Channel mumu"); mycsm->set_modeltofit(testhyp); double chisq = mycsm->chisquared(); std::cout<<"chisq: "<getbestmodel(); mycanvas->cd(4); bestsignalfit->plotwithdata("Channel ee", dataee); mycanvas->cd(5); bestsignalfit->plotwithdata("Channel emu", dataemu); mycanvas->cd(6); bestsignalfit->plotwithdata("Channel mumu", datamumu); mycanvas->Print("results/tomlikeoutemu_wgam_NNshape.ps"); mclimit_csm* mymclimit = new mclimit_csm(); mymclimit->set_null_hypothesis(nullhyp); mymclimit->set_test_hypothesis(testhyp); mymclimit->set_null_hypothesis_pe(nullhyp_pe); mymclimit->set_test_hypothesis_pe(testhyp_pe); mymclimit->set_datahist(dataee, "Channel ee"); mymclimit->set_datahist(dataemu, "Channel emu"); mymclimit->set_datahist(datamumu, "Channel mumu"); mymclimit->set_npe(nps); //mymclimit->run_pseudoexperiments(); //PrintMclimitVals(mymclimit); //double fit95=mymclimit->s95med(); //std::cout << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //fitinfo << "Median expected s95 in bg hypothesis: " << fit95 << std::endl; //std::cout<<"deleting Tomlike elements"<bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); double scalefac=GetHwwXS((int)_higgsMass, _stn)/0.1068; std::vector theBayeslist=mymclimit->Getcslist(); for(std::vector::iterator it=theBayeslist.begin(); it!=theBayeslist.end(); ++it) { //std::cout<<"filling: "<<*it<GetLast()->GetHist()->Fill((*it)*scalefac); _superAnaHists->GetAnaHist("likehist_emu_wgam_MVA2_TMlpANN_cut1")->GetHist()->Fill((*it)*scalefac); } TFile outfile("results/likefile.root", "update"); _superAnaHists->GetAnaHist("likehist_emu_wgam_MVA2_TMlpANN_cut1_10")->GetHist()->Write("likehist_emu_wgam_MVA2_TMlpANN_cut1_10",TObject::kWriteDelete); _superAnaHists->GetAnaHist("likehist_emu_wgam_MVA2_TMlpANN_cut1")->GetHist()->Write("likehist_emu_wgam_MVA2_TMlpANN_cut1",TObject::kWriteDelete); outfile.Close(); // limitcalc->bayes_heinrich_withexpect(0.95,&sflimit,&sfunc, // npxexpect,&sm2,&sm1,&smed,&sp1,&sp2); cout << "tom emu wgam NN shape mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; fitinfo << "tom emu wgam NN shape mh: " << _higgsMass << " " << sflimit << " " << sm2 << " " << sm1 << " " << smed << " " << sp1 << " " << sp2 << endl; ofstream likefile; likefile.open("results/Like_tomemu_wgam_NNshape"); likefile << _higgsMass << " " << sflimit*scalefac << " " << sm2*scalefac << " " << sm1*scalefac << " " << smed*scalefac << " " << sp1*scalefac << " " << sp2*scalefac << endl; likefile.close(); delete mycanvas; /*if(nullhyp!=NULL)delete nullhyp; if(testhyp!=NULL)delete testhyp; if(mycsm!=NULL)delete mycsm; if(bestsignalfit!=NULL)delete bestsignalfit;*/ //TD tom's stuff does not like to be deleted... memory leak! std::cout<<"deleted Tomlike elements"<KStestOut(fitinfo); }