Пример #1
0
//________________________________________________________________
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;
}
Пример #2
0
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");

}