Skip to content
Snippets Groups Projects
pl_CosmicHst1.C 6.32 KiB
void pl_CosmicHst1(Int_t iNSt     = 6,
                   Int_t iOpt     = 0,
                   Int_t iSel     = 0,
                   Int_t i1D      = 0,
                   Double_t dYmax = 0.) {
  //  TCanvas *can = new TCanvas("can22","can22");
  //  can->Divide(2,2);
  TCanvas* can = new TCanvas("can", "can", 50, 0, 400, 1000);
  can->Divide(1, 6);

  gPad->SetFillColor(0);
  gStyle->SetPalette(1);
  gStyle->SetOptStat(kFALSE);

  gROOT->cd();
  gROOT->SetDirLevel(1);

  TH1* h;
  TH1* h1;
  TH2* h2;
  TH3* h3;
  TH3* h3f;

  TString hname;
  TString cOpt;
  TString c2D;
  TString c1D;
  TString chopt;

  const Int_t ColMap[10]  = {1, 2, 3, 4, 6, 7, 8, 9, 41, 46};
  const Int_t iPadLoc[10] = {1, 6, 3, 2, 4, 5, 7, 3, 6, 9};
  //const Int_t iPadLoc[10]={1,2,3,4,5,6,7,3,6,9};
  const Int_t SmT[10]  = {9, 9, 9, 9, 9, 9, 1, 1, 1, 1};
  const Int_t iSm[10]  = {0, 0, 1, 1, 2, 2, 2, 0, 1, 2};
  const Int_t iRpc[10] = {0, 1, 0, 1, 0, 1, 0, 2, 2, 2};

  for (Int_t iSt = 0; iSt < iNSt; iSt++) {
    switch (iOpt) {
      case 0:
        chopt = "hPullX_Station";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 1:
        chopt = "hPullY_Station";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 2:
        chopt = "hPullZ_Station";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 3:
        chopt = "hPullT_Station";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 4:
        chopt = "hPullTB_Station";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;

      case 10:
        chopt = "Efficiency";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 11:
        chopt = "Total";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 12:
        chopt = "Missed";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 13:
        chopt = "Acc";
        hname = Form("%s_%d", chopt.Data(), iSt);
        break;
      case 14: hname = Form("hXY_AllTracks_%d", iSt); break;


      case 20:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Size", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 21:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Pos", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 22:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Pos_py", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 23:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Tot", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 24:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_AvWalk", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 25:
        hname = Form(
          "cl_SmT%d_sm%03d_rpc%03d_AvLnWalk", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 26:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Mul", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 27:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_Trms", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 28:
        hname =
          Form("cl_SmT%d_sm%03d_rpc%03d_DelPos", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;
      case 29:
        hname = Form(
          "cl_SmT%d_sm%03d_rpc%03d_DelTOff", SmT[iSt], iSm[iSt], iRpc[iSt]);
        break;

      case 30:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_Size",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 31:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_Pos",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 32:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_Pos_py",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 33:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_TOff",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 34:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_TOff_pfx",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 35:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_Tot",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 36:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_AvWalk",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 37:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_Mul",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 38:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_DelTof",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;
      case 39:
        hname = Form("cl_SmT%d_sm%03d_rpc%03d_Sel%02d_dXdY",
                     SmT[iSt],
                     iSm[iSt],
                     iRpc[iSt],
                     iSel);
        break;

      case 40: hname = Form("hXY_DX_%d_pyx_pfy", iSt); break;
      case 41: hname = Form("hXY_DY_%d_pyx_pfy", iSt); break;
      case 42: hname = Form("hXY_DT_%d_pyx_pfy", iSt); break;
      case 43: hname = Form("hXY_TOT_%d_pyx_pfy", iSt); break;
      case 44: hname = Form("hXY_CSZ_%d_pyx_pfy", iSt); break;

      default: cout << "iOpt mode not implemented " << endl; return;
    }


    can->cd(iPadLoc[iSt]);
    h2 = (TH2*) gROOT->FindObjectAny(hname);
    if (h2 != NULL) {
      switch (i1D) {
        case 0: h2->Draw("colz"); break;
        case 1:
          h2->Draw("colz");
          gPad->SetLogz();
          break;
        case 11: h2->Draw(); break;
        case 12:
          h2->Draw();
          gPad->SetLogy();
          break;
        case 13: h2->Draw("same"); break;
      }
      if (dYmax > 0.) {
        h2->SetMinimum(-dYmax);
        h2->SetMaximum(dYmax);
      }
    } else
      cout << hname << " not found" << endl;
  }

  can->SaveAs("pl_CosmicHst1.pdf");
}