void myMouseButton(int button, int state, int x, int y) { // Mouse turns object in 3D mode if (drawing3D()) { m_last_x = x; m_last_y = y; return; } // if if (x > W / 2) { x -= W / 2; } // if else { x = (x - W + W / 2); } // else if (y < H / 2) { y = H / 2 - y; } // if else { y = -(y - H / 2); } // else if (state == GLUT_DOWN) { if (button == GLUT_LEFT_BUTTON) { // Add a point, if there is room addPoint(x, y); } // if else if (button == GLUT_RIGHT_BUTTON) { removeLastPoint(); } // else if } // if display(); }
void KoCreatePathTool::mousePressEvent(KoPointerEvent *event) { Q_D(KoCreatePathTool); //Right click removes last point if (event->button() == Qt::RightButton) { removeLastPoint(); return; } const bool isOverFirstPoint = d->shape && handleGrabRect(d->firstPoint->point()).contains(event->point); bool haveCloseModifier = (listeningToModifiers() && (event->modifiers() & Qt::ShiftModifier)); if ((event->button() == Qt::LeftButton) && haveCloseModifier && !isOverFirstPoint) { endPathWithoutLastPoint(); return; } d->finishAfterThisPoint = false; if (pathStarted()) { if (isOverFirstPoint) { d->activePoint->setPoint(d->firstPoint->point()); canvas()->updateCanvas(d->shape->boundingRect()); canvas()->updateCanvas(canvas()->snapGuide()->boundingRect()); if (haveCloseModifier) { d->shape->closeMerge(); // we are closing the path, so reset the existing start path point d->existingStartPoint = 0; // finish path endPath(); } else { // the path shape will get closed when the user releases // the mouse button d->finishAfterThisPoint = true; } } else { canvas()->updateCanvas(canvas()->snapGuide()->boundingRect()); QPointF point = canvas()->snapGuide()->snap(event->point, event->modifiers()); // check whether we hit an start/end node of an existing path d->existingEndPoint = d->endPointAtPosition(point); if (d->existingEndPoint.isValid() && d->existingEndPoint != d->existingStartPoint) { point = d->existingEndPoint.path->shapeToDocument(d->existingEndPoint.point->point()); d->activePoint->setPoint(point); // finish path endPath(); } else { d->activePoint->setPoint(point); canvas()->updateCanvas(d->shape->boundingRect()); canvas()->updateCanvas(canvas()->snapGuide()->boundingRect()); } } } else { KoPathShape *pathShape = new KoPathShape(); d->shape=pathShape; pathShape->setShapeId(KoPathShapeId); KoShapeStroke *stroke = new KoShapeStroke(canvas()->resourceManager()->activeStroke()); stroke->setColor(canvas()->resourceManager()->foregroundColor().toQColor()); pathShape->setStroke(stroke); canvas()->updateCanvas(canvas()->snapGuide()->boundingRect()); QPointF point = canvas()->snapGuide()->snap(event->point, event->modifiers()); // check whether we hit an start/end node of an existing path d->existingStartPoint = d->endPointAtPosition(point); if (d->existingStartPoint.isValid()) { point = d->existingStartPoint.path->shapeToDocument(d->existingStartPoint.point->point()); } d->activePoint = pathShape->moveTo(point); d->firstPoint = d->activePoint; canvas()->updateCanvas(handlePaintRect(point)); canvas()->updateCanvas(canvas()->snapGuide()->boundingRect()); canvas()->snapGuide()->setEditedShape(pathShape); d->angleSnapStrategy = new AngleSnapStrategy(d->angleSnappingDelta, d->angleSnapStatus); canvas()->snapGuide()->addCustomSnapStrategy(d->angleSnapStrategy); } if (d->angleSnapStrategy) d->angleSnapStrategy->setStartPoint(d->activePoint->point()); }
void QgsRubberBand::addGeometry( const QgsGeometry& geom, QgsVectorLayer* layer ) { if ( geom.isEmpty() ) { return; } //maprender object of canvas const QgsMapSettings& ms = mMapCanvas->mapSettings(); int idx = mPoints.size(); switch ( geom.wkbType() ) { case QgsWkbTypes::Point: case QgsWkbTypes::Point25D: { QgsPoint pt; if ( layer ) { pt = ms.layerToMapCoordinates( layer, geom.asPoint() ); } else { pt = geom.asPoint(); } addPoint( pt, false, idx ); removeLastPoint( idx, false ); } break; case QgsWkbTypes::MultiPoint: case QgsWkbTypes::MultiPoint25D: { QgsMultiPoint mpt = geom.asMultiPoint(); for ( int i = 0; i < mpt.size(); ++i, ++idx ) { QgsPoint pt = mpt[i]; if ( layer ) { addPoint( ms.layerToMapCoordinates( layer, pt ), false, idx ); removeLastPoint( idx, false ); } else { addPoint( pt, false, idx ); removeLastPoint( idx, false ); } } } break; case QgsWkbTypes::LineString: case QgsWkbTypes::LineString25D: { QgsPolyline line = geom.asPolyline(); for ( int i = 0; i < line.count(); i++ ) { if ( layer ) { addPoint( ms.layerToMapCoordinates( layer, line[i] ), false, idx ); } else { addPoint( line[i], false, idx ); } } } break; case QgsWkbTypes::MultiLineString: case QgsWkbTypes::MultiLineString25D: { QgsMultiPolyline mline = geom.asMultiPolyline(); for ( int i = 0; i < mline.size(); ++i, ++idx ) { QgsPolyline line = mline[i]; if ( line.isEmpty() ) { --idx; } for ( int j = 0; j < line.size(); ++j ) { if ( layer ) { addPoint( ms.layerToMapCoordinates( layer, line[j] ), false, idx ); } else { addPoint( line[j], false, idx ); } } } } break; case QgsWkbTypes::Polygon: case QgsWkbTypes::Polygon25D: { QgsPolygon poly = geom.asPolygon(); QgsPolyline line = poly[0]; for ( int i = 0; i < line.count(); i++ ) { if ( layer ) { addPoint( ms.layerToMapCoordinates( layer, line[i] ), false, idx ); } else { addPoint( line[i], false, idx ); } } } break; case QgsWkbTypes::MultiPolygon: case QgsWkbTypes::MultiPolygon25D: { QgsMultiPolygon multipoly = geom.asMultiPolygon(); for ( int i = 0; i < multipoly.size(); ++i, ++idx ) { QgsPolygon poly = multipoly[i]; QgsPolyline line = poly[0]; for ( int j = 0; j < line.count(); ++j ) { if ( layer ) { addPoint( ms.layerToMapCoordinates( layer, line[j] ), false, idx ); } else { addPoint( line[j], false, idx ); } } } } break; case QgsWkbTypes::Unknown: default: return; } setVisible( true ); updateRect(); update(); }
void plot_eff_vs_general_var_grand_pas(Bool_t rebin=false, Bool_t range=false){ //------------------------------------------------------------------------------------- // variable: 1 - eta, 2 - pt, 3 - jet //------------------------------------------------------------------------------------- int variable = 2; rebin = false; range = true; bool MBonly = false; bool effonly = true; bool fakonly = false; bool lowerhalf = false; int logX = 1; double minpt = 5.0; double maxpt = 200; double minjet = 0; double maxjet = 0; double minjet2 = 130; double maxjet2 = 170; double maxeta = 1.0; Char_t VARIABLE[100]; if(variable==1){ TH1F *dum = new TH1F("dum","",100,-2.5,2.5); dum->GetXaxis()->SetTitle("#eta"); sprintf(VARIABLE,"ETA_%1.1f",maxeta); if(lowerhalf) dum->SetMaximum(0.5); }else if(variable==2){ TH1F *dum = new TH1F("dum","",100,0.5,320); //if(range) dum->SetAxisRange(0,160); dum->GetXaxis()->SetTitle("p_{T} [GeV/c]"); dum->GetXaxis()->CenterTitle(); dum->GetYaxis()->SetDecimals(); sprintf(VARIABLE,"PT_minpt_%1.1f_%1.1f_%1.1f",minpt,minjet,maxjet); }else if(variable==3){ TH1F *dum = new TH1F("dum","",100,0,1200); dum->GetXaxis()->SetTitle("Corrected leading jet E_{T} (GeV)"); sprintf(VARIABLE,"JETET_minpt_%1.1f",minpt); } dum->SetMinimum(-0.05); dum->SetMaximum(1.0); dum->SetStats(0); //dum->GetYaxis()->SetTitle("Fractional efficiency"); dum->GetYaxis()->SetTitle("A #times #epsilon_{TR}"); dum->GetXaxis()->SetTitleSize(0.05); dum->GetYaxis()->SetTitleSize(0.05); dum->GetYaxis()->SetTitleOffset(1.5); dum->GetYaxis()->SetNdivisions(911); //gROOT->LoadMacro("trkeffanalyzer_hist_jet.C"); gROOT->LoadMacro("trkeffanalyzer_hist_general_variable.C"); Char_t fileName1[100]; Char_t fileName2[100]; Char_t fileName3[100]; Char_t fileName4[100]; Char_t fileName5[100]; Char_t fileName6[100]; Char_t fileString1[200]; Char_t fileString2[200]; Char_t fileString3[200]; Char_t fileString4[200]; Char_t fileString5[200]; Char_t fileString6[200]; //sprintf(fileName1,"TrkHistMC_QCD_10M.root"); //sprintf(fileName1,"TrkHistMC_july09v2_qcdMBD6TdJuly09V3_div2.root"); //sprintf(fileString1,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName1); sprintf(fileName1,"TrkHistGEN_oct06_qcdMBD6TV1.root"); sprintf(fileString1,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName1); cout<<"input file 1 is "<<fileString1<<endl; //sprintf(fileName2,"TrkHistMC_QCD_Pt15.root"); //sprintf(fileName2,"TrkHistMC_july09v2_qcdPt15dJuly09_div2.root"); //sprintf(fileString2,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName2); sprintf(fileName2,"TrkHistGEN_oct01_qcdPt15V1.root"); sprintf(fileString2,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName2); cout<<"input file 2 is "<<fileString2<<endl; //sprintf(fileName3,"TrkHistMC_QCD_Pt30v2.root"); //sprintf(fileName3,"TrkHistMC_july09v2_qcdPt30dJuly09V2_div2.root"); //sprintf(fileString3,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName3); sprintf(fileName3,"TrkHistGEN_oct01_qcdPt30V2.root"); sprintf(fileString3,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName3); cout<<"input file 3 is "<<fileString3<<endl; //sprintf(fileName4,"TrkHistMC_QCD_Pt80v2.root"); //sprintf(fileName4,"TrkHistMC_july09v2_qcdPt80dJuly09V2_div2.root"); //sprintf(fileString4,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName4); sprintf(fileName4,"TrkHistGEN_oct01_qcdPt80V2.root"); sprintf(fileString4,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName4); cout<<"input file 4 is "<<fileString4<<endl; //sprintf(fileName5,"TrkHistMC_QCD_Pt170_V2_1st.root"); //sprintf(fileName5,"TrkHistMC_july09v2_qcdPt170dJuly09_div2.root"); //sprintf(fileString5,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName5); sprintf(fileName5,"TrkHistGEN_oct01_qcdPt170V1.root"); sprintf(fileString5,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName5); cout<<"input file 5 is "<<fileString5<<endl; //sprintf(fileName6,"TrkHistMC_QCD_Pt470_V2_1st.root"); //sprintf(fileName6,"TrkHistMC_july09v2_dec14_qcdPt300dJuly09V2.root"); //sprintf(fileString6,"/Users/andreyoon/Research/ana/spectra/pp_spectra/7TeV/root_files/%s",fileName6); sprintf(fileName6,"TrkHistGEN_oct01_qcdPt300V1.root"); sprintf(fileString6,"/Users/andreyoon/Research/pp7TeV/root_files_postApp/mc/%s",fileName6); cout<<"input file 6 is "<<fileString6<<endl; char jetrange1[100], jetrange2[100], jetrange3[100], jetrange4[100], jetrange5[100], jetrange6[100]; char jetrange7[100], jetrange8[100], jetrange9[100], jetrange10[100], jetrange11[100], jetrange12[100]; // 0-20 MB minjet = 0, maxjet = 20; sprintf(jetrange1," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d1 = trkeffanalyzer_hist_graph(fileString1,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff1 = d1.gEfficiency; TGraphAsymmErrors *FR1 = d1.gFakerate; TGraphAsymmErrors *Eff1Skm = removeLastPoint(Eff1,1); TGraphAsymmErrors *FR1Skm = removeLastPoint(FR1,1); // 20-40 MB, Pt15 minjet = 20, maxjet =40; sprintf(jetrange2," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d2 = trkeffanalyzer_hist_graph(fileString1,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff2 = d2.gEfficiency; TGraphAsymmErrors *FR2 = d2.gFakerate; TGraphAsymmErrors *Eff2Skm = removeLastPoint(Eff2,1); TGraphAsymmErrors *FR2Skm = removeLastPoint(FR2,1); //TGraphAsymmErrors *Eff2Skm = removeLastPoint(Eff2,0); //TGraphAsymmErrors *FR2Skm = removeLastPoint(FR2,0); trkeffanalyzer_hist_data d3 = trkeffanalyzer_hist_graph(fileString2,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff3 = d3.gEfficiency; TGraphAsymmErrors *FR3 = d3.gFakerate; TGraphAsymmErrors *Eff3Skm = removeLastPoint(Eff3,1); TGraphAsymmErrors *FR13km = removeLastPoint(FR3,1); //TGraphAsymmErrors *Eff3Skm = removeLastPoint(Eff3,0); //TGraphAsymmErrors *FR13km = removeLastPoint(FR3,0); // 40-60 Pt15, Pt30 minjet = 40, maxjet =60; sprintf(jetrange3," %1.0f<E_{T}<%1.0f ",minjet,maxjet); trkeffanalyzer_hist_data d4 = trkeffanalyzer_hist_graph(fileString2,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff4 = d4.gEfficiency; TGraphAsymmErrors *FR4 = d4.gFakerate; TGraphAsymmErrors *Eff4Skm = removeLastPoint(Eff4,2); TGraphAsymmErrors *FR4Skm = removeLastPoint(FR4,2); //TGraphAsymmErrors *Eff4Skm = removeLastPoint(Eff4,0); //TGraphAsymmErrors *FR4Skm = removeLastPoint(FR4,0); trkeffanalyzer_hist_data d5 = trkeffanalyzer_hist_graph(fileString3,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff5 = d5.gEfficiency; TGraphAsymmErrors *FR5 = d5.gFakerate; TGraphAsymmErrors *Eff5Skm = removeLastPoint(Eff5,2); TGraphAsymmErrors *FR5Skm = removeLastPoint(FR5,2); //TGraphAsymmErrors *Eff5Skm = removeLastPoint(Eff5,0); //TGraphAsymmErrors *FR5Skm = removeLastPoint(FR5,0); // 60-80 Pt30 minjet = 60, maxjet =80; sprintf(jetrange4," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d6 = trkeffanalyzer_hist_graph(fileString3,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff6 = d6.gEfficiency; TGraphAsymmErrors *FR6 = d6.gFakerate; TGraphAsymmErrors *Eff6Skm = removeLastPoint(Eff6,3); TGraphAsymmErrors *FR6Skm = removeLastPoint(FR6,3); // 80-100 Pt80 -> Pt30 minjet = 80, maxjet =100; sprintf(jetrange5," %1.0f<E_{T}<%1.0f",minjet,maxjet); //trkeffanalyzer_hist_data d7 = trkeffanalyzer_hist_graph(fileString4,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); trkeffanalyzer_hist_data d7 = trkeffanalyzer_hist_graph(fileString3,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff7 = d7.gEfficiency; TGraphAsymmErrors *FR7 = d7.gFakerate; TGraphAsymmErrors *Eff7Skm = removeLastPoint(Eff7,2); TGraphAsymmErrors *FR7Skm = removeLastPoint(FR7,2); //TGraphAsymmErrors *Eff7Skm = removeLastPoint(Eff7,0); //TGraphAsymmErrors *FR7Skm = removeLastPoint(FR7,0); // 100-120 Pt80 minjet = 100, maxjet =120; sprintf(jetrange6," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d8 = trkeffanalyzer_hist_graph(fileString4,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff8 = d8.gEfficiency; TGraphAsymmErrors *FR8 = d8.gFakerate; TGraphAsymmErrors *Eff8Skm = removeLastPoint(Eff8,3); TGraphAsymmErrors *FR8Skm = removeLastPoint(FR8,3); //TGraphAsymmErrors *Eff8Skm = removeLastPoint(Eff8,0); //TGraphAsymmErrors *FR8Skm = removeLastPoint(FR8,0); // 120-140 // 140-160 // 160-180 // 180-200 Pt80, Pt170 minjet = 180, maxjet =200; sprintf(jetrange7," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d9 = trkeffanalyzer_hist_graph(fileString4,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff9 = d9.gEfficiency; TGraphAsymmErrors *FR9 = d9.gFakerate; TGraphAsymmErrors *Eff9Skm = removeLastPoint(Eff9,1); TGraphAsymmErrors *FR9Skm = removeLastPoint(FR9,1); //TGraphAsymmErrors *Eff9Skm = removeLastPoint(Eff9,0); //TGraphAsymmErrors *FR9Skm = removeLastPoint(FR9,0); trkeffanalyzer_hist_data d10 = trkeffanalyzer_hist_graph(fileString5,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff10 = d10.gEfficiency; TGraphAsymmErrors *FR10 = d10.gFakerate; TGraphAsymmErrors *Eff10Skm = removeLastPoint(Eff10,2); TGraphAsymmErrors *FR10Skm = removeLastPoint(FR10,2); //TGraphAsymmErrors *Eff10Skm = removeLastPoint(Eff10,0); //TGraphAsymmErrors *FR10Skm = removeLastPoint(FR10,0); //250 -300 minjet = 250, maxjet =300; sprintf(jetrange8," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d11 = trkeffanalyzer_hist_graph(fileString4,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff11 = d11.gEfficiency; TGraphAsymmErrors *FR11 = d11.gFakerate; TGraphAsymmErrors *Eff11Skm = removeLastPoint(Eff11,1); TGraphAsymmErrors *FR11Skm = removeLastPoint(FR11,1); //TGraphAsymmErrors *Eff11Skm = removeLastPoint(Eff11,0); //TGraphAsymmErrors *FR11Skm = removeLastPoint(FR11,0); //500 - 2400 minjet = 500, maxjet =2400; sprintf(jetrange9," %1.0f<E_{T}<%1.0f",minjet,maxjet); trkeffanalyzer_hist_data d12 = trkeffanalyzer_hist_graph(fileString6,rebin,range,variable,0.0,maxeta,minjet,maxjet,minpt,maxpt); TGraphAsymmErrors *Eff12 = d12.gEfficiency; TGraphAsymmErrors *FR12 = d12.gFakerate; TGraphAsymmErrors *Eff12Skm = removeLastPoint(Eff12,0); TGraphAsymmErrors *FR12Skm = removeLastPoint(FR12,0); Char_t xTitle[100],yTitle[100]; sprintf(xTitle,"p_{T} [GeV/c]"); sprintf(yTitle,"Ratio"); TCanvas *call = new TCanvas("call","call",500,550); call->SetGridx(),call->SetGridy(); //if(logX) call->SetLogx(); call->cd(); dum->Draw(); float binsize = 1.3; float binsize2 = binsize*0.86; int color=0; color = 15; int dopt=4; th1Style1(Eff1Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR1Skm,color,21,binsize,color,1,1,dopt); color = 16; th1Style1(Eff2Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR2Skm,color,21,binsize,color,1,1,dopt); //th1Style1(Eff3Skm,color,24,binsize,color,1,1,dopt); //th1Style1(FR3Skm,color,25,binsize,color,1,1,dopt); color = 17; th1Style1(Eff4Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR4Skm,color,21,binsize,color,1,1,dopt); //th1Style1(Eff5,color,24,binsize,color,1,1,1); //th1Style1(FR5,color,25,binsize,color,1,1,1); color = 18; th1Style1(Eff6Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR6Skm,color,21,binsize,color,1,1,dopt); color = 19; th1Style1(Eff7Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR7Skm,color,21,binsize,color,1,1,dopt); color = 20; th1Style1(Eff8Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR8Skm,color,21,binsize,color,1,1,dopt); color = 21; //th1Style1(Eff9,color,20,binsize,color,1,1,1); //th1Style1(FR9,color,21,binsize,color,1,1,1); th1Style1(Eff10Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR10Skm,color,21,binsize,color,1,1,dopt); color = 22; //th1Style1(Eff11Skm,color,20,binsize,color,1,1,dopt); //th1Style1(FR11Skm,color,21,binsize,color,1,1,dopt); th1Style1(Eff12Skm,color,20,binsize,color,1,1,dopt); th1Style1(FR12Skm,color,21,binsize,color,1,1,dopt); /* th1Style1(FR3,15,4,binsize,15,1,1,1); TGraphAsymmErrors* FR3_dum = FR3->Clone("FR3_dum"); th1Style1(FR3_dum,10,20,binsize2,15,1,1,1); if(!MBonly){ th1Style1(Eff4,16,20,binsize,16,1,1,1); th1Style1(FR4,16,4,binsize,16,1,1,1); TGraphAsymmErrors* FR4_dum = FR4->Clone("FR4_dum"); th1Style1(FR4_dum,10,20,binsize2,16,1,1,1); th1Style1(Eff5,17,20,binsize,17,1,1,1); th1Style1(FR5,17,4,binsize,17,1,1,1); TGraphAsymmErrors* FR5_dum = FR5->Clone("FR5_dum"); th1Style1(FR5_dum,10,20,binsize2,17,1,1,1); th1Style1(Eff6,15,24,binsize,15,1,1,1); th1Style1(FR6,18,4,binsize,18,1,1,1); TGraphAsymmErrors* FR6_dum = FR6->Clone("FR6_dum"); th1Style1(FR6_dum,10,20,binsize2,18,1,1,1); th1Style1(Eff7,16,24,binsize,16,1,1,1); th1Style1(FR7,19,4,binsize,19,1,1,1); TGraphAsymmErrors* FR7_dum = FR7->Clone("FR7_dum"); th1Style1(FR7_dum,10,20,binsize2,19,1,1,1); th1Style1(Eff8,17,24,binsize,17,1,1,1); th1Style1(FR8,20,4,binsize,20,1,1,1); TGraphAsymmErrors* FR8_dum = FR7->Clone("FR8_dum"); th1Style1(FR8_dum,10,20,binsize2,19,1,1,1); } */ if(!MBonly){ //TLegend *leg = new TLegend(0.54,0.4,0.89,0.62); //TLegend *leg = new TLegend(0.54,0.36,0.89,0.62); //TLegend *leg = new TLegend(0.19,0.37,0.93,0.63); //TLegend *leg = new TLegend(0.19,0.4,0.65,0.63); //TLegend *leg = new TLegend(0.23,0.3,0.69,0.52); TLegend *leg = new TLegend(0.23,0.25,0.69,0.47); leg->SetBorderSize(1); leg->SetFillColor(kWhite); //leg->SetFillStyle(0); leg->SetTextSize(0.031); leg->SetMargin(0.55); //leg->SetMargin(0.5); /* char jetrange1[100]; sprintf(jetrange1," %1.0f<E_{T}<%1.0f",minjet,maxjet); char jetrange2[100]; sprintf(jetrange2," %1.0f<E_{T}<%1.0f",minjet2,maxjet2); char header[100]; sprintf(header," p_{T}^{hat}>15 p_{T}^{hat}>30 p_{T}^{hat}>80"); leg->SetHeader(header); */ leg->SetNColumns(2); leg->SetColumnSeparation(0.000); leg->AddEntry(Eff1Skm,jetrange1,"lp"); leg->AddEntry(dum,"MB ",""); leg->AddEntry(Eff2Skm,jetrange2,"lp"); leg->AddEntry(dum,"MB ",""); leg->AddEntry(Eff4Skm,jetrange3,"lp"); leg->AddEntry(dum,"Pt15 ",""); leg->AddEntry(Eff6Skm,jetrange4,"lp"); leg->AddEntry(dum,"Pt30 ",""); leg->AddEntry(Eff7Skm,jetrange5,"lp"); leg->AddEntry(dum,"Pt30 ",""); leg->AddEntry(Eff8Skm,jetrange6,"lp"); leg->AddEntry(dum,"Pt80 ",""); leg->AddEntry(Eff10Skm,jetrange7,"lp"); leg->AddEntry(dum,"Pt170 ",""); leg->AddEntry(Eff12Skm,jetrange9,"lp"); leg->AddEntry(dum,"Pt300 ",""); }else{ TLegend *leg = new TLegend(0.54,0.4,0.89,0.62); leg->SetBorderSize(1); leg->SetFillColor(kWhite); leg->SetTextSize(0.031); leg->SetMargin(0.35); //leg->SetHeader(" 0 < Jet E_{T}< 20 "); leg->AddEntry(Eff3,"PYTHIA 7 TeV","lp"); } leg->Draw(); TLatex *tex = new TLatex(0.19,0.20,"Fake rate"); tex->SetTextSize(0.04); tex->SetLineWidth(2); tex->SetNDC(); //tex->Draw(); Char_t outName1[100]; //sprintf(outName1,"Eff_FR_GRAND_%s",VARIABLE); sprintf(outName1,"Eff_FR_GRAND_wider_v2"); Char_t outName2[100]; //sprintf(outName2,"Eff_FR_GRAND_logx_%s",VARIABLE); sprintf(outName2,"Eff_FR_GRAND_logx_wider_v2"); tex->Draw(); dum->SetMaximum(0.91); //dum->SetMinimum(0.65); dum->SetMinimum(0.50); printCanvases(call,outName1,0); dum->SetMinimum(-0.05); dum->SetMaximum(1.0); printCanvases(call,outName2,1); }