//________________________________________________________________ Bool_t KVCanvas::HandleKey(Int_t , Int_t py) { // Handle keys // Info("HandleKey","key pressed : %d %d",px,py); TObject* obj = 0; TIter next(GetListOfPrimitives()); if (!fEnabledShortcuts) return kTRUE; if (fSelected->InheritsFrom("TFrame")) fSelected = FindHisto(); if (fSelected->InheritsFrom("TH2")) fSelected = FindHisto(); if (!fSelected) return kTRUE; switch ((EKeySym)py) { case kKey_F1: break; case kKey_F2: break; case kKey_F3: break; case kKey_F4: break; case kKey_F5: break; case kKey_F6: break; case kKey_F7: break; case kKey_F8: break; case kKey_F9: SetLogx(!fLogx); Modified(); Update(); break; case kKey_F10: SetLogy(!fLogy); Modified(); Update(); break; case kKey_F11: SetLogz(!fLogz); Modified(); Update(); break; case kKey_F12: if (fSelected->InheritsFrom("TH1")) { gPad->cd(); ((TH1*)fSelected)->GetXaxis()->UnZoom(); ((TH1*)fSelected)->GetYaxis()->UnZoom(); Modified(); Update(); } else if (fSelected->InheritsFrom("TAxis")) { ((TAxis*)fSelected)->UnZoom(); Modified(); Update(); } break; case kKey_a: break; case kKey_b: break; case kKey_c: if (gCopyObject) { gCopyObject->Delete(); gCopyObject = 0; } if (fSelected) gCopyObject = fSelected->Clone(); // gCopyObject = fSelected; break; case kKey_d: if (fSelected->InheritsFrom("TF1")) { TH1* hh = 0; if ((hh = FindHisto())) hh->GetListOfFunctions()->Remove(fSelected); } else GetListOfPrimitives()->Remove(fSelected); Modified(); Update(); break; case kKey_e: GetCanvasImp()->ShowEditor(!GetCanvasImp()->HasEditor()); break; case kKey_f: if (fSelected->InheritsFrom("TH1"))((TH1*)fSelected)->FitPanel(); break; case kKey_g: if (GetGridx() && GetGridy()) { SetGrid(0, 0); while ((obj = next())) { if (obj->InheritsFrom(TPad::Class())) { ((TPad*)obj)->SetGrid(0, 0); } } } else { SetGrid(); while ((obj = next())) { if (obj->InheritsFrom(TPad::Class())) { ((TPad*)obj)->SetGrid(); } } } Modified(); Update(); break; case kKey_i: ShowShortcutsInfos(); break; case kKey_j: fJPressed = kTRUE; return kTRUE; break; case kKey_l: if (fSelected->InheritsFrom("TH2")) SetLogz(!fLogz); else if (fSelected->InheritsFrom("TH1")) SetLogy(!fLogy); Modified(); Update(); break; case kKey_n: if (fSelected->InheritsFrom("TH1")) { ((TH1*)fSelected)->Sumw2(); ((TH1*)fSelected)->Scale(1. / ((TH1*)fSelected)->Integral()); } Modified(); Update(); break; case kKey_p: fPPressed = kTRUE; return kTRUE; break; // case kKey_q: // Close(); // return kTRUE; // break; case kKey_r: if (ExpandFunctionRange()) { Modified(); Update(); } break; case kKey_s: SaveCanvasAs(); break; case kKey_t: break; case kKey_u: Modified(); Update(); break; case kKey_v: if (gCopyObject) { cd(); Modified(); Update(); TString option = ""; if (FindHisto()) option += "same"; gCopyObject->Draw(option.Data()); Modified(); Update(); gCopyObject = 0; } break; case kKey_w: fAgeOfEmpire = !fAgeOfEmpire; break; case kKey_x: if (fPPressed && fSelected->InheritsFrom("TH2")) ProfileX((TH2*)fSelected); if (fJPressed && fSelected->InheritsFrom("TH2")) ProjectionX((TH2*)fSelected); if (!fPPressed && !fJPressed) { gCopyObject = fSelected; GetListOfPrimitives()->Remove(gCopyObject); Modified(); Update(); } break; case kKey_y: if (fPPressed && fSelected->InheritsFrom("TH2")) ProfileY((TH2*)fSelected); if (fJPressed && fSelected->InheritsFrom("TH2")) ProjectionY((TH2*)fSelected); break; case kKey_Left: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, -1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetXaxis(), -1); break; case kKey_Down: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, -1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetYaxis(), -1); break; case kKey_Right: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, 1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetXaxis(), 1); break; case kKey_Up: if (fSelected->InheritsFrom("TAxis")) MoveAxis((TAxis*)fSelected, 1); else if (fSelected->InheritsFrom("TH1")) MoveAxis(FindHisto()->GetYaxis(), 1); break; case kKey_Plus: if (fSelected->InheritsFrom("TH2")) { ((TH2*)fSelected)->SetMinimum(((TH1*)fSelected)->GetMinimum() + 1); Modified(); Update(); } else if (fSelected->InheritsFrom("TF1")) { ((TF1*)fSelected)->SetNpx(((TF1*)fSelected)->GetNpx() + 50); Modified(); Update(); } else if (fSelected->InheritsFrom("TH1")) { TObject* obj = 0; TIter it(((TH1*)fSelected)->GetListOfFunctions()); while ((obj = it())) { ((TF1*)obj)->SetNpx(((TF1*)obj)->GetNpx() + 50); } Modified(); Update(); } break; case kKey_Minus: if (fSelected->InheritsFrom("TH2")) { if (((TH1*)fSelected)->GetMinimum() > 0)((TH2*)fSelected)->SetMinimum(((TH1*)fSelected)->GetMinimum() - 1); Modified(); Update(); } else if (fSelected->InheritsFrom("TF1")) { ((TF1*)fSelected)->SetNpx(((TF1*)fSelected)->GetNpx() - 50); Modified(); Update(); } else if (fSelected->InheritsFrom("TH1")) { TObject* obj = 0; TIter it(((TH1*)fSelected)->GetListOfFunctions()); while ((obj = it()))((TF1*)obj)->SetNpx(((TF1*)obj)->GetNpx() - 50); Modified(); Update(); } break; case kKey_Space: break; default: fPPressed = kFALSE; fJPressed = kFALSE; return kTRUE; } fPPressed = kFALSE; fJPressed = kFALSE; return kTRUE; }
void drawdphideta() { macro m("drawdphideta_0p95",true); csvcut = 0.95; seth(25,0,3.142,25,0,4); auto hdphidetasig = geth2d("hdphidetasig",";#Delta#phi;#Delta#eta"); auto hdphidetabkg = geth2d("hdphidetabkg",";#Delta#phi;#Delta#eta"); auto hdphidetasig12 = geth2d("hdphidetasig12",";#Delta#phi;#Delta#eta"); auto hdphidetabkg12 = geth2d("hdphidetabkg12",";#Delta#phi;#Delta#eta"); auto fmcPb = config.getfile_djt("mcPbbfa"); Fill(fmcPb,[&] (dict &d) { if (d["pthat"]<pthatcut) return; float w = weight1SLPbPb(d); if (d["bin"]>20) return; float w2 = d["weight"]; if (d["pairCodeSignal21"]==0) w2*=processweight((int)d["bProdCode"]); if (d["jtpt1"]>pt1cut && d["refpt1"]>50 && abs(d["refparton_flavorForB1"])==5 && d["jtptSL"]>pt2cut) { if (IsSignal(d)) hdphidetasig->Fill(d["dphiSL1"],abs(d["jteta1"]-d["jtetaSL"]),w); else hdphidetabkg->Fill(d["dphiSL1"],abs(d["jteta1"]-d["jtetaSL"]),w); } if (d["jtpt1"]>pt1cut && d["refpt1"]>50 && abs(d["refparton_flavorForB1"])==5 && d["jtptSignal2"]>pt2cut && d["discr_csvV1_Signal2"]>csvcut) hdphidetasig12->Fill(d["dphiSignal21"],abs(d["jteta1"]-d["jtetaSignal2"]),w2); if (d["jtpt1"]>pt1cut && d["refpt1"]>50 && abs(d["refparton_flavorForB1"])==5 && d["jtpt2"]>pt2cut && d["discr_csvV1_2"]>csvcut && !IsSignal(d["subid2"],d["refpt2"])) hdphidetabkg12->Fill(d["dphi21"],abs(d["jteta1"]-d["jteta2"]),w); // if (d["jtpt1"]>pt1cut && d["refpt1"]>50 && abs(d["refparton_flavorForB1"])==5 && d["jtpt2"]>pt2cut) { // if (IsSignal(d["subid2"],d["refpt2"])) // hdphidetasig12->Fill(d["dphi21"],abs(d["jteta1"]-d["jteta2"]),w2); // else // hdphidetabkg12->Fill(d["dphi21"],abs(d["jteta1"]-d["jteta2"]),w); // } }); auto c1 = getc(); c1->SetLogz(); hdphidetasig->SetMaximum(5E-9); hdphidetasig->Draw("colz"); SavePlots(c1,"signaldphideta"); auto c2 = getc(); c2->SetLogz(); hdphidetabkg->SetMaximum(5E-9); hdphidetabkg->Draw("colz"); SavePlots(c2,"bkgdphideta"); auto c3 = getc(); c3->SetLogz(); hdphidetasig12->SetMaximum(5E-9);//1E-7); hdphidetasig12->Draw("colz"); SavePlots(c3,"signaldphideta12"); auto c4 = getc(); c4->SetLogz(); hdphidetabkg12->SetMaximum(5E-9);//1E-7); hdphidetabkg12->Draw("colz"); SavePlots(c4,"bkgdphideta12"); }