File indexing completed on 2025-08-05 08:11:20
0001 #include "./plotutil.h"
0002
0003 void trackletcorr()
0004 {
0005
0006 std::string plotdir = "tracklet_clustercorr";
0007 system(Form("mkdir -p %s", plotdir.c_str()));
0008
0009 ROOT::EnableImplicitMT();
0010 ROOT::RDataFrame df("minitree", "/sphenix/tg/tg01/hf/hjheng/ppg02/minitree/TrackletMinitree_Data_Run54280_20250210_ProdA2024/dRcut0p5_NominalVtxZ_RandomClusSet0_clusAdcCutSet0_clusPhiSizeCutSet1/minitree_segment*.root");
0011
0012
0013 auto df_evtsel = df.Filter("is_min_bias && firedTrig10_MBDSNgeq2 && abs(PV_z) <= 10 && abs(MBD_z_vtx) <= 10 && MBD_centrality<=70 && !InttBco_IsToBeRemoved");
0014
0015
0016 auto hM_clus1Eta_clus2Eta = df_evtsel.Histo2D({"hM_clus1Eta_clus2Eta", ";Tracklet inner-cluster #eta;Tracklet Tracklet outer-cluster #eta", 200, -2.5, 2.5, 200, -2.5, 2.5}, "tklclus1Eta", "tklclus2Eta");
0017 auto hM_clus1Phi_clus2Phi = df_evtsel.Histo2D({"hM_clus1Phi_clus2Phi", ";Tracklet inner-cluster #phi;Tracklet outer-cluster #phi", 128, -3.2, 3.2, 128, -3.2, 3.2}, "tklclus1Phi", "tklclus2Phi");
0018 auto hM_clus1PhiSize_clus2PhiSize = df_evtsel.Histo2D({"hM_clus1PhiSize_clus2PhiSize", ";Tracklet inner-cluster #phi-size;Tracklet outer-cluster #phi-size", 86, -0.5, 85.5, 86, -0.5, 85.5}, "tklclus1PhiSize", "tklclus2PhiSize");
0019 auto hM_clus1PhiSize_clus2PhiSize_Zoomin = df_evtsel.Histo2D({"hM_clus1PhiSize_clus2PhiSize", ";Tracklet inner-cluster #phi-size;Tracklet outer-cluster #phi-size", 7, 41.5, 48.5, 7, 41.5, 48.5}, "tklclus1PhiSize", "tklclus2PhiSize");
0020 auto hM_clus1Adc_clus2Adc = df_evtsel.Histo2D({"hM_clus1Adc_clus2Adc", ";Tracklet inner-cluster ADC;Tracklet outer-cluster ADC", 200, 0, 20000, 200, 0, 20000}, "tklclus1ADC", "tklclus2ADC");
0021
0022
0023 std::vector<const char *> plotinfo = {"Centrality#leq70", "Is MinBias, Trigger bit 10 (MBD N&S#geq2)", "|INTT&MBD vtx_{Z}|#leq10cm, cluster ADC>35"};
0024 draw2Dhist(hM_clus1Eta_clus2Eta.GetPtr(), "Tracklet inner-cluster #eta", "Tracklet outer-cluster #eta", true, plotinfo, "colz", Form("%s/clus1Eta_vs_clus2Eta", plotdir.c_str()));
0025 draw2Dhist(hM_clus1Phi_clus2Phi.GetPtr(), "Tracklet inner-cluster #phi", "Tracklet outer-cluster #phi", true, plotinfo, "colz", Form("%s/clus1Phi_vs_clus2Phi", plotdir.c_str()));
0026 draw2Dhist(hM_clus1PhiSize_clus2PhiSize.GetPtr(), "Tracklet inner-cluster #phi-size", "Tracklet outer-cluster #phi-size", true, plotinfo, "colz", Form("%s/clus1PhiSize_vs_clus2PhiSize", plotdir.c_str()));
0027 draw2Dhist(hM_clus1PhiSize_clus2PhiSize_Zoomin.GetPtr(), "Tracklet inner-cluster #phi-size", "Tracklet outer-cluster #phi-size", true, plotinfo, "colztext", Form("%s/clus1PhiSize_vs_clus2PhiSize_Zoomin", plotdir.c_str()));
0028 draw2Dhist(hM_clus1Adc_clus2Adc.GetPtr(), "Tracklet inner-cluster ADC", "Tracklet outer-cluster ADC", true, plotinfo, "colz", Form("%s/clus1Adc_vs_clus2Adc", plotdir.c_str()));
0029
0030
0031 int N_clus1PhiSize4346_and_clus2PhiSize4346 = hM_clus1PhiSize_clus2PhiSize->GetBinContent(hM_clus1PhiSize_clus2PhiSize->GetXaxis()->FindBin(43), hM_clus1PhiSize_clus2PhiSize->GetYaxis()->FindBin(46)) +
0032 hM_clus1PhiSize_clus2PhiSize->GetBinContent(hM_clus1PhiSize_clus2PhiSize->GetXaxis()->FindBin(46), hM_clus1PhiSize_clus2PhiSize->GetYaxis()->FindBin(43)) +
0033 hM_clus1PhiSize_clus2PhiSize->GetBinContent(hM_clus1PhiSize_clus2PhiSize->GetXaxis()->FindBin(43), hM_clus1PhiSize_clus2PhiSize->GetYaxis()->FindBin(43)) +
0034 hM_clus1PhiSize_clus2PhiSize->GetBinContent(hM_clus1PhiSize_clus2PhiSize->GetXaxis()->FindBin(46), hM_clus1PhiSize_clus2PhiSize->GetYaxis()->FindBin(46));
0035
0036
0037 int N_clus1PhiSize_or_clus2PhiSize4346 = 0;
0038 for (int i = 0; i < hM_clus1PhiSize_clus2PhiSize->GetNbinsX(); i++)
0039 {
0040 for (int j = 0; j < hM_clus1PhiSize_clus2PhiSize->GetNbinsY(); j++)
0041 {
0042 if (i == 43 || i == 46 || j == 43 || j == 46)
0043 {
0044 N_clus1PhiSize_or_clus2PhiSize4346 += hM_clus1PhiSize_clus2PhiSize->GetBinContent(i, j);
0045 }
0046 }
0047 }
0048
0049
0050 N_clus1PhiSize_or_clus2PhiSize4346 -= N_clus1PhiSize4346_and_clus2PhiSize4346;
0051
0052 double frac_clus1PhiSize4346_and_clus2PhiSize4346 = static_cast<double>(N_clus1PhiSize4346_and_clus2PhiSize4346) / static_cast<double>(hM_clus1PhiSize_clus2PhiSize->Integral(-1, -1, -1, -1)) * 100;
0053 double frac_clus1PhiSize4346_or_clus2PhiSize4346 = static_cast<double>(N_clus1PhiSize_or_clus2PhiSize4346) / static_cast<double>(hM_clus1PhiSize_clus2PhiSize->Integral(-1, -1, -1, -1)) * 100;
0054 cout << "Total number of entries in hM_clus1PhiSize_clus2PhiSize = " << hM_clus1PhiSize_clus2PhiSize->Integral(-1, -1, -1, -1) << endl
0055 << "Number of entries for bins where both constituent cluster have a phi-size of 43 or 46 = " << N_clus1PhiSize4346_and_clus2PhiSize4346 << " -> Fraction (%) = ";
0056 print_with_significant_digits(frac_clus1PhiSize4346_and_clus2PhiSize4346, 4);
0057 cout << endl << "Number of entries for bins where either cluster has a phi-size of 43 or 46 = " << N_clus1PhiSize_or_clus2PhiSize4346 << " -> Fraction (%)= ";
0058 print_with_significant_digits(frac_clus1PhiSize4346_or_clus2PhiSize4346, 4);
0059 cout << endl;
0060 }