Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:11:20

0001 #include "./plotutil.h"
0002 
0003 void trackletcorr()
0004 {
0005     // directory to save the output plots; if the directory does not exist, create it using
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     // is_min_bias && firedTrig10_MBDSNgeq2 && |PV_z| <= 10 && |MBD_z_vtx| <= 10 && MBD_centrality<=70
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     // 2D histograms for correlation of clusters on tracklets
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     // draw 2D histograms
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     // for hM_clus1PhiSize_clus2PhiSize: count the number of entries for the bins where both phi-sizes are 43 and 46
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     // count the number of entries for the bins where either phi-size is 43 or 46
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     // remove double counting
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 }