Beispiel #1
0
void StatusObserver::set_status(protobuf::StatusMsg::StatusType status) {
  bool changed_status = (status != status_);
  status_ = status;
  if (changed_status) {
    signal_(status_);
  }
}
void ConnectionPool::addConnection(ConnectionPtr connection) {
	Lock lock(mutex_);
	LOG(INFO)<< "Adding connection";
	queue_->push(connection);

	if (queue_->size() >= connsToSignal_) {
		LOG(INFO)<< "Signaling";
		lock.unlock();
		signal_();
	}
}
Beispiel #3
0
void init()
{
	if(signal_(SIGINT, intHandler) == SIG_ERR)
	{
		cout << "Signal_ Error!" << endl;
		exit(1);
	}
	getIfDetach() = false;
	get_stdin_fd() = dup(STDIN_FILENO);
	getPrefix() = updatePrefix();
	get_alias()["ls"] = "ls --color=auto";
	get_alias()["grep"] = "grep --color=auto";
}
 void raise(const Args&... args) {
     signal_(args...);
 }
Beispiel #5
0
void Loader::Impl::statusChanged()
{
	status_ = cached_item_ ? cached_item_->status() : WaitingToLoad;
	createPixmap();
	signal_();
}
void PrepareWorkSpace()
{

  gROOT->SetStyle("Plain");

  TFile *f_MMMM_a=new TFile("PreselectedWithoutRegression/LMRSelection_chi2/Histograms_Data_BTagCSV_2015_Skim.root");
  f_MMMM_a->cd(); 

  RooRealVar *x;
  x=new RooRealVar("x", "m_{X} (GeV)", SR_lo, SR_hi);
 
  std::cout<<" = MMMM Background Prediction ==== "<<std::endl;
  TH1F *h_mMMMMa_3Tag_CR24=(TH1F*)f_MMMM_a->Get("h_mX_SB_kinFit");
  TH1F *h_mMMMMa_3Tag_SR;
  h_mMMMMa_3Tag_SR=(TH1F*)f_MMMM_a->Get("h_mX_SR_kinFit");
  h_mMMMMa_3Tag_CR24->SetLineColor(kBlue);
  h_mMMMMa_3Tag_SR->SetLineColor(kBlue);
  TH1F *h_mMMMMa_3Tag_SR_Prediction=(TH1F*)h_mMMMMa_3Tag_CR24->Clone("h_mMMMMa_3Tag_SR_Prediction");
  double aC=h_mMMMMa_3Tag_CR24->Integral(h_mMMMMa_3Tag_CR24->FindBin(SR_lo), h_mMMMMa_3Tag_CR24->FindBin(SR_hi));

std::cout<<"  asd "<<std::endl;

 RooRealVar bg_p0("bg_p0", "bg_p0", 250., 350.);
 RooRealVar bg_p1("bg_p1", "bg_p1", 1., 50.1);
 RooRealVar bg_p2("bg_p2", "bg_p2", 0.1, 0.7);
  
 GaussExp bg("bg", "Background Prediction PDF", *x, bg_p0, bg_p1, bg_p2);
 RooDataHist pred("pred", "Prediction from SB", RooArgList(*x), h_mMMMMa_3Tag_SR_Prediction);

  bg.fitTo(pred, RooFit::Range(SR_lo, SR_hi),RooFit::SumW2Error(kTRUE));
  RooPlot *aC_plot=x->frame();
  pred.plotOn(aC_plot, RooFit::LineColor(kRed), RooFit::MarkerColor(kRed));
  bg.plotOn(aC_plot, RooFit::LineColor(kRed));
  TCanvas *c_rooFit=new TCanvas("c_rooFit", "c_rooFit", 1000, 700);
  if (tags!="MMMM") h_mMMMMa_3Tag_CR24->Draw("Ep9 SAME");
  aC_plot->Draw();



  std::cout<<" --------------------- Building Envelope --------------------- "<<std::endl;
  std::cout<< " bg_p0 "<<bg_p0.getVal() <<  "  err  "<<bg_p0.getError()<<std::endl;
  std::cout<< " bg_p1 "<<bg_p1.getVal() <<  "  err  "<<bg_p1.getError()<<std::endl;
  std::cout<< " bg_p2 "<<bg_p2.getVal() <<  "  err  "<<bg_p2.getError()<<std::endl;


std::string point[5]={"260","270","300","400","600"};

///// keep ttbar


  double totalLuminosity=2190; // /pb
/*
  double xsec_ttbar_fulllept=24.56;
  double xsec_ttbar_semilept=103.12;
  double xsec_ttbar_hadronic=106.32;


  TFile *ttbar_fulllept=new TFile("MMMM_nominal/a_KinFit/Histograms_DiJetPt_TTJets_FullLeptMGDecays_8TeV-madgraph_selected.root");
  TFile *ttbar_semilept=new TFile("MMMM_nominal/a_KinFit/Histograms_DiJetPt_TTJets_SemiLeptMGDecays_8TeV-madgraph_selected.root");
  TFile *ttbar_hadronic=new TFile("MMMM_nominal/a_KinFit/Histograms_DiJetPt_TTJets_HadronicMGDecays_8TeV-madgraph_selected.root");
  TFile *ttbar_fulllept_old=new TFile("/gpfs/ddn/cms/user/cvernier/H4b_step2/CMSSW_5_3_3_patch2/src/VHbbAnalysis/VHbbDataFormats/bin/DiJetPt_TTJets_FullLeptMGDecays_8TeV-madgraph.root");
  TFile *ttbar_semilept_old=new TFile("/gpfs/ddn/cms/user/cvernier/H4b_step2/CMSSW_5_3_3_patch2/src/VHbbAnalysis/VHbbDataFormats/bin/DiJetPt_TTJets_SemiLeptMGDecays_8TeV-madgraph.root");
  TFile *ttbar_hadronic_old=new TFile("/gpfs/ddn/cms/user/cvernier/H4b_step2/CMSSW_5_3_3_patch2/src/VHbbAnalysis/VHbbDataFormats/bin/DiJetPt_TTJets_HadronicMGDecays_8TeV-madgraph.root");
	
  TH1F *h_mX_SR_ttbar_fulllept=(TH1F*)ttbar_fulllept->Get("h_mX_SR");
  TH1F *h_mX_SR_ttbar_semilept=(TH1F*)ttbar_semilept->Get("h_mX_SR");
  TH1F *h_mX_SR_ttbar_hadronic=(TH1F*)ttbar_hadronic->Get("h_mX_SR");
  double init_ttbar_fulllept=((TH1F*)ttbar_fulllept_old->Get("CountWithPU"))->GetBinContent(1);
  double init_ttbar_semilept=((TH1F*)ttbar_semilept_old->Get("CountWithPU"))->GetBinContent(1);
  double init_ttbar_hadronic=((TH1F*)ttbar_hadronic_old->Get("CountWithPU"))->GetBinContent(1);

  std::cout<<"init_ttbar_fulllept = "<<init_ttbar_fulllept<<std::endl;
  std::cout<<"init_ttbar_semilept = "<<init_ttbar_semilept<<std::endl;
  std::cout<<"init_ttbar_hadronic = "<<init_ttbar_hadronic<<std::endl;

  double scale_ttbar_fulllept=totalLuminosity*xsec_ttbar_fulllept/init_ttbar_fulllept;
  double scale_ttbar_semilept=totalLuminosity*xsec_ttbar_semilept/init_ttbar_semilept;
  double scale_ttbar_hadronic=totalLuminosity*xsec_ttbar_hadronic/init_ttbar_hadronic;


  h_mX_SR_ttbar_fulllept->Scale(scale_ttbar_fulllept);
  h_mX_SR_ttbar_semilept->Scale(scale_ttbar_semilept);
  h_mX_SR_ttbar_hadronic->Scale(scale_ttbar_hadronic);

	
 
  TH1F *h_mX_SR_ttbar=(TH1F*)h_mX_SR_ttbar_fulllept->Clone("h_mX_SR_ttbar");
  h_mX_SR_ttbar->Add(h_mX_SR_ttbar_semilept);
  h_mX_SR_ttbar->Add(h_mX_SR_ttbar_hadronic);	

  h_mX_SR_ttbar->Rebin(rebin);
  int bin1=h_mX_SR_ttbar->FindBin(SR_lo);
  int bin2=h_mX_SR_ttbar->FindBin(SR_hi)-1;

  // Print out the lnN systematics of normalization
  double ttbar=h_mX_SR_ttbar->Integral(bin1, bin2);
  std::cout<<"TT h_mX_SR_ttbar->Integral(bin1, bin2) = "<<h_mX_SR_ttbar->Integral(bin1, bin2)<<std::endl; 
 	  
 */

for(int h=0; h<5;h++){


  //std::cout<<"Background CR->SR Scale  = "<<h_mX_SR->GetSumOfWeights()/h_mX_CR24->GetSumOfWeights()<<"  num " << h_mX_SR->GetSumOfWeights()<<"  den "<<h_mX_CR24->GetSumOfWeights()<< std::endl;

  std::string filename="PreselectedWithoutRegression/LMRSelection_chi2/Histograms_Graviton"+point[h]+"GeV.root";
  
  TFile *signal=new TFile(filename.c_str());
  //TFile *signal_old=new TFile(filename_old.c_str());
  // Calculate nSignal events given production cross section, branching fractions and efficiency
  TH1F *h_CountWithPU=(TH1F*)signal->Get("Count");
  double nSignal_init=h_CountWithPU->GetBinContent(1);
  double prodXsec_1[5]={0, 1., 2., 5., 10.}; // pb

  
  int num_toys =h_mMMMMa_3Tag_SR->Integral(h_mMMMMa_3Tag_SR->FindBin(SR_lo), h_mMMMMa_3Tag_SR->FindBin(SR_hi)-1); //GetSumOfWeights();///h_mX_CR24->GetSumOfWeights();

  for(int n =1; n<2; n++){ 
	  for(int toy=0; toy<1; toy++){

		  TH1F *h_mX_SR_signal=(TH1F*)signal->Get("h_mX_SR_kinFit"); 
		  h_mX_SR_signal->Rebin(rebin);
		  RooRealVar *sg_p0, *sg_p1, *sg_p2, *sg_p3, *sg_p7, *sg_p8;
		  double rangeLo=-1, rangeHi=-1; 
			  if (point[h]=="270")
			  {
				  rangeLo=252, rangeHi=600.;
				      sg_p0=new RooRealVar("sg_p0", "sg_p0", 260., 280.);
                                  sg_p1=new RooRealVar("sg_p1", "sg_p1", 2., 5.);
                                  sg_p2=new RooRealVar("sg_p2", "sg_p2", 10., 530.);
                                  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 300.);
                                  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0.5, 1.);/*
				sg_p0=new RooRealVar("sg_p0", "sg_p0", 260., 280.);
         			sg_p1=new RooRealVar("sg_p1", "sg_p1", 1., 5.);
		         	sg_p2=new RooRealVar("sg_p2", "sg_p2", 10., 500.);
         			sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 300.);
         			sg_p8=new RooRealVar("sg_p8", "sg_p8", 0.5, 1.);
*/
	
			  }
			   if (point[h]=="260")
                          {
                                  rangeLo=252., rangeHi=630.;
                                  sg_p0=new RooRealVar("sg_p0", "sg_p0", 250., 270.);
                                  sg_p1=new RooRealVar("sg_p1", "sg_p1", 2., 6.);
                                  sg_p2=new RooRealVar("sg_p2", "sg_p2", 10., 590.);
                                  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 300.);
                                  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0.5, 1.);
                          }
			   if (point[h]=="600")
                          {
                                  rangeLo=580., rangeHi=650.;
                                  sg_p0=new RooRealVar("sg_p0", "sg_p0", 580., 630.);
                                  sg_p1=new RooRealVar("sg_p1", "sg_p1", 7., 40.);
                                  sg_p2=new RooRealVar("sg_p2", "sg_p2", 500., 650.);
                                  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 130.);
                                  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0.7, 1.);
                          }
			  if (point[h]=="500")
                          {
                                  rangeLo=300., rangeHi=600.;
                                  sg_p0=new RooRealVar("sg_p0", "sg_p0", 480., 520.);
                                  sg_p1=new RooRealVar("sg_p1", "sg_p1", 7., 18.);
                                  sg_p2=new RooRealVar("sg_p2", "sg_p2", 400., 590.);
                                  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 100.);
                                  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0., 1.);
                          }
			  if (point[h]=="350")
			  {
				  rangeLo=SR_lo, rangeHi=550.;
				  sg_p0=new RooRealVar("sg_p0", "sg_p0", 320., 380.);
				  sg_p1=new RooRealVar("sg_p1", "sg_p1", 5., 15.);
				  sg_p2=new RooRealVar("sg_p2", "sg_p2", 330., 420.);
				  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 100.);
				  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0., 1.);
			  }
			  if (point[h]=="400")
			  {
				  rangeLo=300., rangeHi=600.;
				  sg_p0=new RooRealVar("sg_p0", "sg_p0", 370., 430.);
				  sg_p1=new RooRealVar("sg_p1", "sg_p1", 3., 15.);
				  sg_p2=new RooRealVar("sg_p2", "sg_p2", 370.,460.);
				  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 100.);
				  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0., 1.);
			  }
			  if (point[h]=="450")
			  {
				  rangeLo=300., rangeHi=600.;
				  sg_p0=new RooRealVar("sg_p0", "sg_p0", 420., 480.);
				  sg_p1=new RooRealVar("sg_p1", "sg_p1", 3., 15.);
				  sg_p2=new RooRealVar("sg_p2", "sg_p2", 410., 490.);
				  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 100.);
				  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0., 1.);
			  }
			  if (point[h]=="300")
			  {
				  rangeLo=SR_lo, rangeHi=550.;
				  sg_p0=new RooRealVar("sg_p0", "sg_p0", 290., 320.);
				  sg_p1=new RooRealVar("sg_p1", "sg_p1", 5., 9.);
				  sg_p2=new RooRealVar("sg_p2", "sg_p2", 250., 360.);
				  sg_p3=new RooRealVar("sg_p3", "sg_p3", 10., 130.);
				  sg_p8=new RooRealVar("sg_p8", "sg_p8", 0., 1.);
			  }


		   //	x=new RooRealVar("x", "m_{X} (GeV)", 250, 900);
		        int binning = (abs(SR_lo-SR_hi)/(rebin)); 	std::cout<<"  binning "<<binning<<std::endl;
   			x->setBins(binning);

		  RooGaussian signalCore("signalCore", "Signal Prediction", *x, *sg_p0, *sg_p1);
		  RooGaussian Cpolyn("Cpolyn", "Combinatoric", *x, *sg_p2, *sg_p3);
		  RooAddPdf signal_("signal_", "signal", RooArgList(signalCore, Cpolyn), *sg_p8);
		  RooDataHist signalHistogram("signalHistogram", "Signal Histogram", RooArgList(*x), h_mX_SR_signal);
		  signal_.fitTo(signalHistogram, RooFit::Range(SR_lo,SR_hi), RooFit::Save(),RooFit::SumW2Error(kFALSE)); 
		  RooPlot *plot=x->frame();
	          //RooRealVar *signal_p0, *signal_p1, *signal_p2, *signal_p3, *signal_p7, *signal_p8;	
		  // signal_p0 = new RooRealVar("signal_p0", "signal_p0", sg_p0->getVal());
                  //signal_p1 = new RooRealVar("signal_p1", "signal_p1", sg_p1->getVal());
                  //signal_p2 = new RooRealVar("signal_p2", "signal_p2", sg_p2->getVal());
                  //signal_p3 = new RooRealVar("signal_p3", "signal_p3", sg_p3->getVal());
                  //signal_p8 = new RooRealVar("signal_p8", "signal_p8", sg_p8->getVal());
               /*                   
                  RooGaussian g1("g1", "Signal Prediction", *x, *sg_p0, *sg_p1);
                  RooGaussian g2("g2", "Combinatoric", *x, *sg_p2,*sg_p3);
                                  
                  RooAddPdf signal_bkg("signal_bkg", "signal_bkg", RooArgList(g1,g2), *sg_p8);
		  RooRealVar * signal_bkg_norm;
		  if(point[h]=="270") signal_bkg_norm= new RooRealVar("signal_bkg_norm","signal_bkg_norm", 0., -0.27, 0.27,"");	
		  if(point[h]=="300") signal_bkg_norm= new RooRealVar("signal_bkg_norm","signal_bkg_norm", 0., -0.55, 0.55,""); 
 		  if(point[h]=="350") signal_bkg_norm= new RooRealVar("signal_bkg_norm","signal_bkg_norm", 0., -0.24, 0.24,"");
	          if(point[h]=="400") signal_bkg_norm= new RooRealVar("signal_bkg_norm","signal_bkg_norm", 0., -0.09, 0.09,"");
*/
	
		   //sg_p8.setConstant(kTRUE);
		 // sg_p2.setConstant(kTRUE);
		 // sg_p3.setConstant(kTRUE);
		 // sg_p1.setConstant(kTRUE);

         	 /* int toyy = toy;

		  RooRandom::randomGenerator()->SetSeed(toyy);

		  std::cout<< "  n  "<<prodXsec_1[n]*totalLuminosity/nSignal_init<<std::endl;
		  std::cout<<h_mX_SR_signal->GetIntegral()<<"  asd  "<<std::endl;
*/
		  double ntoys_signal = h_mX_SR_signal->Integral(h_mX_SR_signal->FindBin(SR_lo),h_mX_SR_signal->FindBin(SR_hi)-1)*prodXsec_1[n]*totalLuminosity/nSignal_init;
                 /*if(int(ntoys_signal*btagSF)>0) RooDataHist data_sig=*(signal_.generateBinned(*x, int(ntoys_signal*btagSF)));
		 RooDataHist  data_=*(bg.generateBinned(*x, num_toys, RooAbsData::Poisson));

		  if(int(ntoys_signal*btagSF)>0){
			  for (int i=0; i<data_sig->numEntries(); i++){
				  RooArgSet args = *((data_sig)->get(i));
				  float oldw = (data_sig)->store()->weight(i);
				  data_->add(args,oldw);
			  }
		  }
		  data_->SetName("obs");
		  data_->SetNameTitle("obs","obs");

		  TH1 * h_fake = data_->createHistogram("h_fake",*x,RooFit::Binning(133, SR_lo,SR_hi));
		  */

                  int num_toys =h_mMMMMa_3Tag_SR->Integral(h_mMMMMa_3Tag_SR->FindBin(SR_lo), h_mMMMMa_3Tag_SR->FindBin(SR_hi)-1);
		  h_mMMMMa_3Tag_CR24->Scale(num_toys/aC);
		  std::cout<<" warning:   "<<h_mMMMMa_3Tag_CR24->Integral()<< "     "<<h_mMMMMa_3Tag_SR->Integral()<<std::endl;
		  RooDataHist obs("obs", "Data", RooArgList(*x), h_mMMMMa_3Tag_CR24);
                  //RooPlot *plot=x->frame();
                  obs.plotOn(plot);
		  TCanvas *c_data=new TCanvas("c_data", "c_data", 500, 500);
		  std::cout<<point[h]<<" Datacard imax 1 number of channels"<<std::endl;
		  std::cout<<point[h]<<" Datacard jmax * number of backgrounds"<<std::endl;
		  std::cout<<point[h]<<" Datacard kmax * number of systematic uncertainty sources"<<std::endl;
		  std::cout<<point[h]<<" Datacard ----------"<<std::endl;
		  std::cout<<point[h]<<" Datacard shapes signal_ HbbHbb w_data_LowMass"<<point[h]<<".root HbbHbb:signal_"<<std::endl;
		  std::cout<<point[h]<<" Datacard shapes background HbbHbb w_data_LowMass"<<point[h]<<".root HbbHbb:bg"<<std::endl;
		  std::cout<<point[h]<<" Datacard shapes data_obs HbbHbb w_data_LowMass"<<point[h]<<".root HbbHbb:obs"<<std::endl;
		  //std::cout<<point[h]<<" Datacard shapes ttbar HbbHbb w_data_LowMass"<<point[h]<<".root HbbHbb:ttbar"<<std::endl;
		  //std::cout<<point[h]<<" Datacard shapes signal_bkg HbbHbb w_data_LowMass"<<point[h]<<".root HbbHbb:signal_bkg"<<std::endl;
		  std::cout<<point[h]<<" Datacard ----------"<<std::endl;
		  std::cout<<point[h]<<" Datacard ## Observation"<<std::endl;
		  std::cout<<point[h]<<" Datacard bin                     HbbHbb"<<std::endl;
		  std::cout<<point[h]<<" Datacard observation              -1"<<std::endl;
		  std::cout<<point[h]<<" Datacard ----------"<<std::endl;



		  std::cout<<point[h]<<" Datacard bin             HbbHbb          HbbHbb"<<std::endl;
		  std::cout<<point[h]<<" Datacard process         signal_      background"<<std::endl;
		  std::cout<<point[h]<<" Datacard process         0               1"<<std::endl;
		  std::cout<<point[h]<<" Datacard rate            "<<ntoys_signal*btagSF<<"        "<<num_toys<<std::endl;
		  std::cout<<point[h]<<" Datacard lumi            lnN     1.046            -     "<<std::endl;
		  /*std::cout<<point[h]<<" Datacard JEC             lnN     "<<JEC/100.+1.<<"             -  1.00018     -"<<std::endl;
		    std::cout<<point[h]<<" Datacard JER             lnN     "<<JER/100.+1.<<"              -   1.00843  -"<<std::endl;
		    std::cout<<point[h]<<" Datacard trigSFpT    lnN     "<<trigSFpT/100.+1.<<"              -   1.09135      -"<<std::endl;
		    std::cout<<point[h]<<" Datacard trigSFCSV lnN    "<<trigSFCSV/100.+1.<<"      -    1.02758               -"<<std::endl;
		    std::cout<<point[h]<<" Datacard ttbar_xsec lnN  -       -       1.15                       -"<<std::endl;
		    std::cout<<point[h]<<" Datacard bg_free lnU    -   2.0   -   -"<<std::endl;
		    std::cout<<point[h]<<" Datacard btag    lnN   1.1273  - 1.1273  -"<<std::endl;
		    */
		  std::cout<<point[h]<< " Datacard sg_p0   param   "<<sg_p0->getVal() <<  " "<<sg_p0->getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard sg_p1   param   "<<sg_p1->getVal() <<  " "<<sg_p1->getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard sg_p2   param   "<<sg_p2->getVal() <<  " "<<sg_p2->getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard sg_p3   param   "<<sg_p3->getVal() <<  " "<<sg_p3->getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard sg_p8   param   "<<sg_p8->getVal() <<  " "<<sg_p8->getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard bg_p0   param   "<<bg_p0.getVal() <<  " "<<bg_p0.getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard bg_p1   param   "<<bg_p1.getVal() <<  " "<<bg_p1.getError()<<std::endl;
		  std::cout<<point[h]<< " Datacard bg_p2   param   "<<bg_p2.getVal() <<  " "<<bg_p2.getError()<<std::endl;




		  plot->Draw("");
		  // h_fake->Draw("");	

		  stringstream ss, stoy;//create a stringstream
		  ss << n;//prodXsec_1[n];//add number to the stream
		  stoy<<toy;
		  std::cout<<"mass = "<<point[h]<<std::endl;
		  c_data->Print(("c_data_"+point[h]+"_"+ss.str()+".png").c_str());

		  std::cout<<" === === "<<std::endl;
		  std::cout<<"chi^2/ndof of aC = "<<aC_plot->chiSquare()<<std::endl;
		  std::cout<<" === === "<<std::endl;

		  c_rooFit->SaveAs(("c_compareData_"+tags+"_SR_RooFit_GaussExp.png").c_str());


		  RooWorkspace *w=new RooWorkspace("HbbHbb");
		  //  RooDataHist r_ttbar("ttbar", "ttbar", RooArgList(*x), h_mX_SR_ttbar);
		  // Params par;
		  // RooPlot *plotttbar=fitttbar(r_ttbar, kBlack, par, w);


		  //  std::cout<<"Datacard ttbar_p0  param  "<<par.sg_p0<<"  "<<par.sg_p0_err<<std::endl;
		  //  std::cout<<"Datacard ttbar_p1  param  "<<par.sg_p1<<"  "<<par.sg_p1_err<<std::endl;
		  //  std::cout<<"Datacard ttbar_p2  param  "<<par.sg_p2<<"  "<<par.sg_p2_err<<std::endl;

		  w->import(bg);
		  w->import(signal_); //   w->import(signal_bkg);
		  //  w->import(*signal_bkg_norm);
		  w->import(obs);
		  w->SaveAs(("bias_study/w_data_LowMass"+point[h]+"_"+ss.str()+"_"+stoy.str()+".root").c_str()); 

	  }

  }
}
}