예제 #1
0
int graphs () 
{
  //PG prepare the graphs
  //PG ---- ---- ---- ---- ---- ---- ---- ----

  TGraph ** tg_sig_par = new TGraph * [7] ; // [parameter][mass]
  for (int k = 0 ; k < 7 ; ++k) tg_sig_par[k] = new TGraph (5) ;
  TGraph ** tg_sAi_par = new TGraph * [9] ;
  for (int k = 0 ; k < 9 ; ++k) tg_sAi_par[k] = new TGraph (5) ;

  //PG fill the graphs from the input files
  //PG ---- ---- ---- ---- ---- ---- ---- ----

  int i = 0 ; 

  intCont ic_350  ("results_interference.350.1.root", 350) ;      
  ic_350.setsigGraphs (tg_sig_par, i) ;
  ic_350.setsAiGraphs (tg_sAi_par, i++) ;
  intCont ic_500  ("results_interference.500.1.root", 500) ;      
  ic_500.setsigGraphs (tg_sig_par, i) ;  
  ic_500.setsAiGraphs (tg_sAi_par, i++) ;  
  intCont ic_650  ("results_interference.650.1.root", 650) ;      
  ic_650.setsigGraphs (tg_sig_par, i) ;  
  ic_650.setsAiGraphs (tg_sAi_par, i++) ;  
  intCont ic_800  ("results_interference.800.1.root", 800) ;      
  ic_800.setsigGraphs (tg_sig_par, i) ;  
  ic_800.setsAiGraphs (tg_sAi_par, i++) ;  
  intCont ic_1000 ("results_interference.1000.1.root", 1000) ;   
  ic_1000.setsigGraphs (tg_sig_par, i) ;   
  ic_1000.setsAiGraphs (tg_sAi_par, i++) ;   

  //PG plot the interpolation for the signal
  //PG ---- ---- ---- ---- ---- ---- ---- ----

  compareFits (tg_sig_par, 7, tg_sAi_par, 9) ;

  drawGraphs (tg_sig_par, "sig", 7) ;
  drawGraphs (tg_sAi_par, "sAi", 9) ;

  showInterpolation (tg_sig_par, "sig", 7) ;
  showInterpolation (tg_sAi_par, "sAi", 9) ;

  testInterpolation (tg_sig_par, "sig", 7) ;
  testInterpolation (tg_sAi_par, "sAi", 9) ;


  return 0 ;  

}  
예제 #2
0
/**
 * Perform drawing. All layers will be drawn starting from the one with the
 * lowest index.
 *
 * @param event Painting event.
 */
void PolarPlot2D::paintEvent(QPaintEvent * /*event*/) {
	initPainterCoordinates();
	updateScreenData();
	drawBackground();
	drawGraphBackground();
	drawGrids();
	drawGraphs();
	//drawAxes();
	//drawItems();
	drawBoundaries();
}
예제 #3
0
void PlotWindow::displayRide(
	boost::shared_ptr<DataLog> data_log, 
	boost::shared_ptr<User> user)
{
	_user = user;

	if (data_log.get() != _data_log.get() || data_log->isModified())
	{
		// Set the data
		_data_log = data_log;
		_plot_picker1->setDataLog(_data_log);

		// Show the data
		drawGraphs();

		// Display lap markers
		clearLapMarkers();
		if (_data_log->numLaps() > 1)
		{
			_laps_cb->setChecked(true);
			drawLapMarkers();
		}
		else
		{
			_laps_cb->setChecked(false);
		}

		// Draw HR zones
		if (_hr_zones_cb->isChecked())
			drawHRZoneMarkers();

		// Decide which graphs to display based on data content
		_hr_cb->setChecked(_data_log->heartRateValid());
		_speed_cb->setChecked(_data_log->speedValid());
		_alt_cb->setChecked(_data_log->altValid());
		_cadence_cb->setChecked(_data_log->cadenceValid());
		_power_cb->setChecked(_data_log->powerValid());
		_temp_cb->setChecked(_data_log->tempValid());

		// Enabled user interface
		setEnabled(true);
		curveSelectionChanged();
		show();
	}
	else
	{
		// Return to base zoom
		_plot_zoomer->zoom(_plot_zoomer->zoomBase());
	}
}
예제 #4
0
//--------------------------------------------------------------
void BYBGui::draw(){
    drawGraphs();
    ofSetColor(255);
    logo.draw(logoRect);
    if (bDrawGui) {
        gui.draw();
    }
    int p;
    if (getIsCalibrating() || bAccuracyTestRunning) {
        p = selectedGraph;
    }else{
        p = selectedFinger;
        handImg.selectFinger(selectedFinger);
    }
    if (p >= 0 && p < NUM_GRAPHS) {
        ofPushStyle();

        if (bNewPeak) {
            bNewPeak = false;
            ofSetColor(255);
        }else if (getIsCalibrating()) {
            ofSetColor(ofColor::red, ofMap(sin(ofGetElapsedTimef() * TWO_PI), -1, 1, 0, 255));
        }else{
            ofSetColor(ofColor::orange);
        }
        ofDrawRectangle(graphs[p].guiRectangle.getMaxX() -20, graphs[p].guiRectangle.y, 20, graphs[p].guiRectangle.height);
        ofPopStyle();
    }
    loadButton.draw();
    saveButton.draw();
    calibrateButton.draw();
    accuracyButton.draw();
    eucButton.draw();
    svmButton.draw();
    arduinoButton.draw();
    if (!getIsCalibrating()){
        handImg.draw(ofColor::orange);
    }
    if (controllerPtr->serial.isWriting()) {
        ofPushStyle();
        ofSetColor(ofColor::red);
        ofFill();
        ofDrawCircle(100, 100, 70);
        ofPopStyle();
    }
}
예제 #5
0
void PlotWindow::xAxisUnitsChanged(int idx)
{
	if (idx == 0) // time
	{
		_plot->setAxisScaleDraw(QwtPlot::xBottom, new XAxisScaleDraw(tr("time")));
		_plot->setAxisTitle(QwtPlot::xBottom,"Time (min)");
	}
	else // dist
	{
		_plot->setAxisScaleDraw(QwtPlot::xBottom, new XAxisScaleDraw(tr("dist")));
		_plot->setAxisTitle(QwtPlot::xBottom,"Distance (km)");
	}
	
	drawGraphs();
	if (_laps_cb->isChecked()) // we need to resent the lap markers
	{
		clearLapMarkers();
		drawLapMarkers();
	}
	emit deleteSelection();
}
int main(int argc, char* argv[]) {

  if (argc != 7 && argc != 8) {
    std::cout << "USAGE: ./drawPhotonJet [data_dataset] [mc_SIGNAL_dataset] [mc_BG_dataset] [recoType] [jetAlgo]" << std::endl;
    exit(23);
  }

  setPrettyStyle();

  std::string data_dataset(argv[1]);
  std::string mc_photonjet(argv[2]);
  std::string mc_QCD(argv[3]);
  std::string recoType(argv[4]);
  std::string jetAlgo(argv[5]);

  std::string algoType;
  if (recoType == "calo") {
    algoType = jetAlgo;
  } else {
    algoType = recoType + jetAlgo;
  }
  if (recoType == "jpt" && jetAlgo == "akt5") {
    algoType = "jptak5";
  }

  std::string flags = "";

  jetAlgo = (jetAlgo == "ak5") ? "AK5" : "AK7";
  recoType = (recoType == "pf") ? "PFlow" : "Calo";
  std::string postFix = recoType + jetAlgo;

  postFix += "chs";

  TString dataFileName;
  if (flags.length() > 0) {
    dataFileName = TString::Format("PhotonJet_%s_%s_%s.root", data_dataset.c_str(), postFix.c_str(), flags.c_str());
  } else {
    dataFileName = TString::Format("PhotonJet_%s_%s.root", data_dataset.c_str(), postFix.c_str());
  }

  TFile* dataFile = TFile::Open(dataFileName);
  std::cout << "Opened data file '" << dataFileName << "'." << std::endl;

  //db->add_dataFile(dataFile, data_dataset);

  TString mc1FileName;
  if (flags.length() > 0) {
    mc1FileName = TString::Format("PhotonJet_%s_%s_%s.root", mc_photonjet.c_str(), postFix.c_str(), flags.c_str());
  } else {
    mc1FileName = TString::Format("PhotonJet_%s_%s.root", mc_photonjet.c_str(), postFix.c_str());
  }

  TFile* mcPhotonJetFile = TFile::Open(mc1FileName);
  std::cout << "Opened mc file '" << mc1FileName << "'." << std::endl;

  if (mcPhotonJetFile) {
    //db->add_mcFile(mcPhotonJetFile, mc_photonjet, "#gamma+jet MC", 46);
  }

  if (mc_QCD != "") {
    TString mc2FileName;
    if (flags.length() > 0) {
      mc2FileName = TString::Format("PhotonJet_%s_%s_%s.root", mc_QCD.c_str(), postFix.c_str(), flags.c_str());
    } else {
      mc2FileName = TString::Format("PhotonJet_%s_%s.root", mc_QCD.c_str(), postFix.c_str());
    }
    TFile* mcQCDFile = TFile::Open(mc2FileName);
    std::cout << "Opened mc file '" << mc2FileName << "'." << std::endl;

    if (mcQCDFile && mc_QCD != mc_photonjet) {
      //db->add_mcFile(mcQCDFile, mc_QCD, "QCD MC", 38);
    }
  }

  // Create output directory
  mkdir("plots", 0755);

  TString directoryName = "";
  
  if (mc_QCD.length() == 0)
    directoryName = TString::Format("plots/%s_vs_%s_%s", data_dataset.c_str(), mc_photonjet.c_str(), postFix.c_str());
  else
    directoryName = TString::Format("plots/%s_vs_%s_plus_%s_%s", data_dataset.c_str(), mc_photonjet.c_str(), mc_QCD.c_str(), postFix.c_str());
  mkdir(directoryName, 0755);

  directoryName = TString::Format("%s/extrapolation", directoryName.Data());
  mkdir(directoryName, 0755);

  TParameter<double>* pLumi = static_cast<TParameter<double>*>(dataFile->Get("analysis/luminosity"));
  double lumi = pLumi->GetVal() * 1e-9;

  //bool log = true;
  gErrorIgnoreLevel = kWarning;

  EtaBinning etaBinning;
  size_t etaBinningSize = etaBinning.size();

  TString rootFolder = "analysis/new_extrapolation";
  for (size_t i = 0; i < etaBinningSize; i++) {

    const std::string& etaName = etaBinning.getBinName(i);
    std::cout << "Processing " << etaName << std::endl;
    
    TString responseName = TString::Format("%s/extrap_resp_balancing_%s_graph", rootFolder.Data(), etaName.c_str());
    TString outputName = TString::Format("%s/extrap_resp_balancing_%s.pdf", directoryName.Data(), etaName.c_str());
    TGraphErrors* data = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "Balancing", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", etaBinning.getBinTitle(i), lumi, outputName.Data());

    // Raw jets
    responseName = TString::Format("%s/extrap_resp_balancing_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_balancing_raw_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "Balancing", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw jets)", etaBinning.getBinTitle(i), lumi, outputName.Data());

    responseName = TString::Format("%s/extrap_resp_mpf_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_mpf_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "MPF", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", etaBinning.getBinTitle(i), lumi, outputName.Data());

    // Raw jets
    responseName = TString::Format("%s/extrap_resp_mpf_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_mpf_raw_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "MPF", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw #slashed{E_{t}})", etaBinning.getBinTitle(i), lumi, outputName.Data());
  }
  // Special case eta < 1.3
  {
    const std::string& etaName = "eta013";
    std::cout << "Processing " << etaName << std::endl;
    
    TString responseName = TString::Format("%s/extrap_resp_balancing_%s_graph", rootFolder.Data(), etaName.c_str());
    TString outputName = TString::Format("%s/extrap_resp_balancing_%s.pdf", directoryName.Data(), etaName.c_str());
    TGraphErrors* data = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "Balancing", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", "#eta #leq 1.3", lumi, outputName.Data());

    // Raw jets
    responseName = TString::Format("%s/extrap_resp_balancing_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_balancing_raw_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "Balancing", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw jets)", "#eta #leq 1.3", lumi, outputName.Data());

    responseName = TString::Format("%s/extrap_resp_mpf_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_mpf_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "MPF", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", "#eta #leq 1.3", lumi, outputName.Data());

    // Raw jets
    responseName = TString::Format("%s/extrap_resp_mpf_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_mpf_raw_%s.pdf", directoryName.Data(), etaName.c_str());
    data = (TGraphErrors*) dataFile->Get(responseName);
    mc = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawGraphs(data, mc, "MPF", "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw #slashed{E_{t}})", "#eta #leq 1.3", lumi, outputName.Data());
  }

  //db->set_legendTitle("|#eta| < 1.3");
  //db->drawHisto_vs_pt(ptBins, "resp_mpf_eta013", "MPF Response", "", "Events", log);
  //db->drawHisto_vs_pt(ptBins, "resp_mpf_raw_eta013", "MPF Response (raw ME_{T})", "", "Events", log);
  for (size_t i = 0; i < etaBinningSize; i++) {

    const std::string& etaName = etaBinning.getBinName(i);
    std::cout << "Processing " << etaName << std::endl;
    
    TString responseName = TString::Format("%s/extrap_resp_balancing_%s_graph", rootFolder.Data(), etaName.c_str());
    TString outputName = TString::Format("%s/extrap_resp_combined_%s", directoryName.Data(), etaName.c_str());
    TGraphErrors* balancingData = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* balancingMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    responseName = TString::Format("%s/extrap_resp_mpf_%s_graph", rootFolder.Data(), etaName.c_str());
    TGraphErrors* mpfData = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* mpfMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawCombinedGraphs(balancingData, balancingMC, mpfData, mpfMC, "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", etaBinning.getBinTitle(i), lumi, outputName.Data());

    responseName = TString::Format("%s/extrap_resp_balancing_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_combined_raw_%s", directoryName.Data(), etaName.c_str());
    balancingData = (TGraphErrors*) dataFile->Get(responseName);
    balancingMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    responseName = TString::Format("%s/extrap_resp_mpf_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    mpfData = (TGraphErrors*) dataFile->Get(responseName);
    mpfMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawCombinedGraphs(balancingData, balancingMC, mpfData, mpfMC, "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw objects)", etaBinning.getBinTitle(i), lumi, outputName.Data());

  }

  // Eta < 1.3
  {
    const std::string& etaName = "eta013";
    std::cout << "Processing " << etaName << std::endl;
    
    TString responseName = TString::Format("%s/extrap_resp_balancing_%s_graph", rootFolder.Data(), etaName.c_str());
    TString outputName = TString::Format("%s/extrap_resp_combined_%s", directoryName.Data(), etaName.c_str());
    TGraphErrors* balancingData = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* balancingMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    responseName = TString::Format("%s/extrap_resp_mpf_%s_graph", rootFolder.Data(), etaName.c_str());
    TGraphErrors* mpfData = (TGraphErrors*) dataFile->Get(responseName);
    TGraphErrors* mpfMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawCombinedGraphs(balancingData, balancingMC, mpfData, mpfMC, "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response", "#eta #leq 1.3", lumi, outputName.Data());

    responseName = TString::Format("%s/extrap_resp_balancing_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    outputName = TString::Format("%s/extrap_resp_combined_raw_%s", directoryName.Data(), etaName.c_str());
    balancingData = (TGraphErrors*) dataFile->Get(responseName);
    balancingMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    responseName = TString::Format("%s/extrap_resp_mpf_raw_%s_graph", rootFolder.Data(), etaName.c_str());
    mpfData = (TGraphErrors*) dataFile->Get(responseName);
    mpfMC = (TGraphErrors*) mcPhotonJetFile->Get(responseName);

    drawCombinedGraphs(balancingData, balancingMC, mpfData, mpfMC, "p_{t}^{2^{nd} jet} / p_{t}^{#gamma}", "Jet response (raw objects)", "#eta #leq 1.3", lumi, outputName.Data());
  }

  return 0;
}