File indexing completed on 2025-08-05 08:11:19
0001 #include <filesystem>
0002
0003 float ytitleoffset = 1.6;
0004
0005 void quickdraw_centralitycalib()
0006 {
0007 std::string plotdir = "./quickcheck_MBDcentrality";
0008 system(Form("mkdir -p %s", plotdir.c_str()));
0009
0010 std::string ntpdir = "/sphenix/tg/tg01/hf/hjheng/ppg02/dst/Data_Run54280_20250114_ProdA2024";
0011
0012 int ntotalfile = 326;
0013
0014 int nfilesperturn = 5;
0015 TCanvas *c = new TCanvas("c", "c", 1400, 1200);
0016 c->Divide(2, 2);
0017 c->Print(Form("%s/centralitycalib_Run54280_ProdA2024_InRunDependence.pdf[", plotdir.c_str()));
0018 for (int ifile = 0; ifile < int(ntotalfile / nfilesperturn); ifile++)
0019 {
0020 std::unique_ptr<TH1F> hM_MBDcentrality_wocut(new TH1F("hM_MBDcentrality_wocut", "hM_MBDcentrality_wocut", 101, -0.5, 100.5));
0021 std::unique_ptr<TH1F> hM_MBDcentrality_isMinBias(new TH1F("hM_MBDcentrality_isMinBias", "hM_MBDcentrality_isMinBias", 101, -0.5, 100.5));
0022 std::unique_ptr<TH1F> hM_MBDcentrality_Trigbit10(new TH1F("hM_MBDcentrality_Trigbit10", "hM_MBDcentrality_Trigbit10", 101, -0.5, 100.5));
0023 std::unique_ptr<TH1F> hM_MBDcentrality_Trigbit12(new TH1F("hM_MBDcentrality_Trigbit12", "hM_MBDcentrality_Trigbit12", 101, -0.5, 100.5));
0024 std::unique_ptr<TH1F> hM_MBDcentrality_Trigbit13(new TH1F("hM_MBDcentrality_Trigbit13", "hM_MBDcentrality_Trigbit13", 101, -0.5, 100.5));
0025
0026 std::unique_ptr<TH1F> hM_MBDchargesum_wocut(new TH1F("hM_MBDchargesum_wocut", "hM_MBDchargesum_wocut", 125, 0, 2500));
0027 std::unique_ptr<TH1F> hM_MBDchargesum_isMinBias(new TH1F("hM_MBDchargesum_isMinBias", "hM_MBDchargesum_isMinBias", 125, 0, 2500));
0028 std::unique_ptr<TH1F> hM_MBDchargesum_Trigbit10(new TH1F("hM_MBDchargesum_Trigbit10", "hM_MBDchargesum_Trigbit10", 125, 0, 2500));
0029 std::unique_ptr<TH1F> hM_MBDchargesum_Trigbit12(new TH1F("hM_MBDchargesum_Trigbit12", "hM_MBDchargesum_Trigbit12", 125, 0, 2500));
0030 std::unique_ptr<TH1F> hM_MBDchargesum_Trigbit13(new TH1F("hM_MBDchargesum_Trigbit13", "hM_MBDchargesum_Trigbit13", 125, 0, 2500));
0031
0032 std::unique_ptr<TH1F> hM_MBDchargeassym_wocut(new TH1F("hM_MBDchargeassym_wocut", "hM_MBDchargeassym_wocut", 100, -1, 1));
0033 std::unique_ptr<TH1F> hM_MBDchargeassym_isMinBias(new TH1F("hM_MBDchargeassym_isMinBias", "hM_MBDchargeassym_isMinBias", 100, -1, 1));
0034 std::unique_ptr<TH1F> hM_MBDchargeassym_Trigbit10(new TH1F("hM_MBDchargeassym_Trigbit10", "hM_MBDchargeassym_Trigbit10", 100, -1, 1));
0035 std::unique_ptr<TH1F> hM_MBDchargeassym_Trigbit12(new TH1F("hM_MBDchargeassym_Trigbit12", "hM_MBDchargeassym_Trigbit12", 100, -1, 1));
0036 std::unique_ptr<TH1F> hM_MBDchargeassym_Trigbit13(new TH1F("hM_MBDchargeassym_Trigbit13", "hM_MBDchargeassym_Trigbit13", 100, -1, 1));
0037
0038 std::unique_ptr<TH1F> hM_MBDZvtx_wocut(new TH1F("hM_MBDZvtx_wocut", "hM_MBDZvtx_wocut", 140, -70, 70));
0039 std::unique_ptr<TH1F> hM_MBDZvtx_isMinBias(new TH1F("hM_MBDZvtx_isMinBias", "hM_MBDZvtx_isMinBias", 140, -70, 70));
0040 std::unique_ptr<TH1F> hM_MBDZvtx_Trigbit10(new TH1F("hM_MBDZvtx_Trigbit10", "hM_MBDZvtx_Trigbit10", 140, -70, 70));
0041 std::unique_ptr<TH1F> hM_MBDZvtx_Trigbit12(new TH1F("hM_MBDZvtx_Trigbit12", "hM_MBDZvtx_Trigbit12", 140, -70, 70));
0042 std::unique_ptr<TH1F> hM_MBDZvtx_Trigbit13(new TH1F("hM_MBDZvtx_Trigbit13", "hM_MBDZvtx_Trigbit13", 140, -70, 70));
0043
0044 vector<uint64_t> vec_gl1bco;
0045 vec_gl1bco.clear();
0046
0047 for (int i = ifile*nfilesperturn; i < (ifile+1)*nfilesperturn; i++)
0048 {
0049 std::string formatidx = std::string(TString::Format("%05d", i).Data());
0050 std::string filename = Form("%s/ntuple_%s.root", ntpdir.c_str(), formatidx.c_str());
0051
0052 std::filesystem::path entry(filename);
0053 if (!std::filesystem::exists(entry))
0054 continue;
0055
0056 std::cout << "Processing " << filename << std::endl;
0057
0058 TFile *f = new TFile(filename.c_str(), "READ");
0059 TTree *t = (TTree *)f->Get("EventTree");
0060 uint64_t GL1Packet_BCO;
0061 std::vector<int> *firedTriggers = 0;
0062 bool is_min_bias;
0063 float MBD_z_vtx, MBD_centrality, MBD_charge_sum, mbd_charge_asymm;
0064 t->SetBranchAddress("GL1Packet_BCO", &GL1Packet_BCO);
0065 t->SetBranchAddress("firedTriggers", &firedTriggers);
0066 t->SetBranchAddress("is_min_bias", &is_min_bias);
0067 t->SetBranchAddress("MBD_z_vtx", &MBD_z_vtx);
0068 t->SetBranchAddress("MBD_centrality", &MBD_centrality);
0069 t->SetBranchAddress("MBD_charge_sum", &MBD_charge_sum);
0070 t->SetBranchAddress("MBD_charge_asymm", &mbd_charge_asymm);
0071 for (int ev = 0; ev < t->GetEntriesFast(); ev++)
0072 {
0073 t->GetEntry(ev);
0074 vec_gl1bco.push_back(GL1Packet_BCO);
0075 MBD_centrality = MBD_centrality * 100;
0076 hM_MBDcentrality_wocut->Fill(MBD_centrality);
0077 hM_MBDchargesum_wocut->Fill(MBD_charge_sum);
0078 hM_MBDchargeassym_wocut->Fill(mbd_charge_asymm);
0079 hM_MBDZvtx_wocut->Fill(MBD_z_vtx);
0080 if (is_min_bias)
0081 {
0082 hM_MBDcentrality_isMinBias->Fill(MBD_centrality);
0083 hM_MBDchargesum_isMinBias->Fill(MBD_charge_sum);
0084 hM_MBDchargeassym_isMinBias->Fill(mbd_charge_asymm);
0085 hM_MBDZvtx_isMinBias->Fill(MBD_z_vtx);
0086 }
0087 if (is_min_bias && std::find(firedTriggers->begin(), firedTriggers->end(), 10) != firedTriggers->end())
0088 {
0089 hM_MBDcentrality_Trigbit10->Fill(MBD_centrality);
0090 hM_MBDchargesum_Trigbit10->Fill(MBD_charge_sum);
0091 hM_MBDchargeassym_Trigbit10->Fill(mbd_charge_asymm);
0092 hM_MBDZvtx_Trigbit10->Fill(MBD_z_vtx);
0093 }
0094 if (is_min_bias && std::find(firedTriggers->begin(), firedTriggers->end(), 12) != firedTriggers->end())
0095 {
0096 hM_MBDcentrality_Trigbit12->Fill(MBD_centrality);
0097 hM_MBDchargesum_Trigbit12->Fill(MBD_charge_sum);
0098 hM_MBDchargeassym_Trigbit12->Fill(mbd_charge_asymm);
0099 hM_MBDZvtx_Trigbit12->Fill(MBD_z_vtx);
0100 }
0101 if (is_min_bias && std::find(firedTriggers->begin(), firedTriggers->end(), 13) != firedTriggers->end())
0102 {
0103 hM_MBDcentrality_Trigbit13->Fill(MBD_centrality);
0104 hM_MBDchargesum_Trigbit13->Fill(MBD_charge_sum);
0105 hM_MBDchargeassym_Trigbit13->Fill(mbd_charge_asymm);
0106 hM_MBDZvtx_Trigbit13->Fill(MBD_z_vtx);
0107 }
0108 }
0109 f->Close();
0110 }
0111
0112 c->cd(1);
0113 gPad->SetTopMargin(0.25);
0114 hM_MBDcentrality_wocut->GetXaxis()->SetTitle("Centrality percentile");
0115 hM_MBDcentrality_wocut->GetYaxis()->SetTitle("Counts");
0116 hM_MBDcentrality_wocut->GetYaxis()->SetTitleOffset(ytitleoffset);
0117 hM_MBDcentrality_wocut->GetYaxis()->SetRangeUser(0, 1.3 * hM_MBDcentrality_wocut->GetMaximum());
0118 hM_MBDcentrality_wocut->SetLineColor(kBlack);
0119 hM_MBDcentrality_wocut->SetLineWidth(2);
0120 hM_MBDcentrality_isMinBias->SetLineColor(kTBriBlue);
0121 hM_MBDcentrality_isMinBias->SetLineWidth(2);
0122 hM_MBDcentrality_Trigbit10->SetLineColor(kTBriGreen);
0123 hM_MBDcentrality_Trigbit10->SetLineWidth(2);
0124 hM_MBDcentrality_Trigbit12->SetLineColor(kTBriYellow);
0125 hM_MBDcentrality_Trigbit12->SetLineWidth(2);
0126 hM_MBDcentrality_Trigbit13->SetLineColor(kTBriRed);
0127 hM_MBDcentrality_Trigbit13->SetLineWidth(2);
0128 hM_MBDcentrality_wocut->Draw("hist");
0129 hM_MBDcentrality_isMinBias->Draw("hist same");
0130 hM_MBDcentrality_Trigbit10->Draw("hist same");
0131 hM_MBDcentrality_Trigbit12->Draw("hist same");
0132 hM_MBDcentrality_Trigbit13->Draw("hist same");
0133 hM_MBDcentrality_wocut->Draw("hist same");
0134 c->RedrawAxis();
0135 TLegend *l = new TLegend(gPad->GetLeftMargin(), 1 - gPad->GetTopMargin() + 0.02, 1 - gPad->GetRightMargin() - 0.45, 0.98);
0136 l->SetNColumns(1);
0137 l->AddEntry(hM_MBDcentrality_wocut.get(), "Without cut", "l");
0138 l->AddEntry(hM_MBDcentrality_isMinBias.get(), "Is min bias", "l");
0139 l->AddEntry(hM_MBDcentrality_Trigbit10.get(), "Is MB & Trigger bit 10 (MBD N&S#geq2)", "l");
0140 l->AddEntry(hM_MBDcentrality_Trigbit12.get(), "Is MB & Trigger bit 12 (MBD N&S#geq2, |vtx|<10cm)", "l");
0141 l->AddEntry(hM_MBDcentrality_Trigbit13.get(), "Is MB & Trigger bit 13 (MBD N&S#geq2, |vtx|<30cm)", "l");
0142 l->SetTextSize(0.035);
0143 l->SetBorderSize(0);
0144 l->SetFillStyle(0);
0145 l->Draw();
0146 TLatex *t = new TLatex();
0147 t->SetTextAlign(23);
0148 t->SetTextSize(0.035);
0149 t->DrawLatexNDC(0.5, 1 - gPad->GetTopMargin() - 0.04, Form("GL1 BCO [%lu,%lu]", vec_gl1bco.front(), vec_gl1bco.back()));
0150
0151 c->cd(2);
0152 gPad->SetTopMargin(0.05);
0153 gPad->SetLogy();
0154 hM_MBDchargesum_wocut->GetXaxis()->SetTitle("MBD Charge Sum");
0155 hM_MBDchargesum_wocut->GetYaxis()->SetTitle("Counts");
0156 hM_MBDchargesum_wocut->GetYaxis()->SetTitleOffset(ytitleoffset);
0157 hM_MBDchargesum_wocut->GetYaxis()->SetRangeUser(0.5, 10 * hM_MBDchargesum_wocut->GetMaximum());
0158 hM_MBDchargesum_wocut->SetLineColor(kBlack);
0159 hM_MBDchargesum_wocut->SetLineWidth(2);
0160 hM_MBDchargesum_isMinBias->SetLineColor(kTBriBlue);
0161 hM_MBDchargesum_isMinBias->SetLineWidth(2);
0162 hM_MBDchargesum_Trigbit10->SetLineColor(kTBriGreen);
0163 hM_MBDchargesum_Trigbit10->SetLineWidth(2);
0164 hM_MBDchargesum_Trigbit12->SetLineColor(kTBriYellow);
0165 hM_MBDchargesum_Trigbit12->SetLineWidth(2);
0166 hM_MBDchargesum_Trigbit13->SetLineColor(kTBriRed);
0167 hM_MBDchargesum_Trigbit13->SetLineWidth(2);
0168 hM_MBDchargesum_wocut->Draw("hist");
0169 hM_MBDchargesum_isMinBias->Draw("hist same");
0170 hM_MBDchargesum_Trigbit10->Draw("hist same");
0171 hM_MBDchargesum_Trigbit12->Draw("hist same");
0172 hM_MBDchargesum_Trigbit13->Draw("hist same");
0173 hM_MBDchargesum_wocut->Draw("hist same");
0174 c->RedrawAxis();
0175
0176 c->cd(3);
0177 gPad->SetTopMargin(0.05);
0178 hM_MBDchargeassym_wocut->GetXaxis()->SetTitle("MBD Charge Asymmetry");
0179 hM_MBDchargeassym_wocut->GetYaxis()->SetTitle("Counts");
0180 hM_MBDchargeassym_wocut->GetYaxis()->SetTitleOffset(ytitleoffset);
0181 hM_MBDchargeassym_wocut->GetYaxis()->SetRangeUser(0, 1.3 * hM_MBDchargeassym_wocut->GetMaximum());
0182 hM_MBDchargeassym_wocut->SetLineColor(kBlack);
0183 hM_MBDchargeassym_wocut->SetLineWidth(2);
0184 hM_MBDchargeassym_isMinBias->SetLineColor(kTBriBlue);
0185 hM_MBDchargeassym_isMinBias->SetLineWidth(2);
0186 hM_MBDchargeassym_Trigbit10->SetLineColor(kTBriGreen);
0187 hM_MBDchargeassym_Trigbit10->SetLineWidth(2);
0188 hM_MBDchargeassym_Trigbit12->SetLineColor(kTBriYellow);
0189 hM_MBDchargeassym_Trigbit12->SetLineWidth(2);
0190 hM_MBDchargeassym_Trigbit13->SetLineColor(kTBriRed);
0191 hM_MBDchargeassym_Trigbit13->SetLineWidth(2);
0192 hM_MBDchargeassym_wocut->Draw("hist");
0193 hM_MBDchargeassym_isMinBias->Draw("hist same");
0194 hM_MBDchargeassym_Trigbit10->Draw("hist same");
0195 hM_MBDchargeassym_Trigbit12->Draw("hist same");
0196 hM_MBDchargeassym_Trigbit13->Draw("hist same");
0197 hM_MBDchargeassym_wocut->Draw("hist same");
0198 c->RedrawAxis();
0199
0200 c->cd(4);
0201 gPad->SetTopMargin(0.05);
0202 hM_MBDZvtx_wocut->GetXaxis()->SetTitle("MBD Z Vertex");
0203 hM_MBDZvtx_wocut->GetYaxis()->SetTitle("Counts");
0204 hM_MBDZvtx_wocut->GetYaxis()->SetTitleOffset(ytitleoffset);
0205 hM_MBDZvtx_wocut->GetYaxis()->SetRangeUser(0, 1.3 * hM_MBDZvtx_wocut->GetMaximum());
0206 hM_MBDZvtx_wocut->SetLineColor(kBlack);
0207 hM_MBDZvtx_wocut->SetLineWidth(2);
0208 hM_MBDZvtx_isMinBias->SetLineColor(kTBriBlue);
0209 hM_MBDZvtx_isMinBias->SetLineWidth(2);
0210 hM_MBDZvtx_Trigbit10->SetLineColor(kTBriGreen);
0211 hM_MBDZvtx_Trigbit10->SetLineWidth(2);
0212 hM_MBDZvtx_Trigbit12->SetLineColor(kTBriYellow);
0213 hM_MBDZvtx_Trigbit12->SetLineWidth(2);
0214 hM_MBDZvtx_Trigbit13->SetLineColor(kTBriRed);
0215 hM_MBDZvtx_Trigbit13->SetLineWidth(2);
0216 hM_MBDZvtx_wocut->Draw("hist");
0217 hM_MBDZvtx_isMinBias->Draw("hist same");
0218 hM_MBDZvtx_Trigbit10->Draw("hist same");
0219 hM_MBDZvtx_Trigbit12->Draw("hist same");
0220 hM_MBDZvtx_Trigbit13->Draw("hist same");
0221 hM_MBDZvtx_wocut->Draw("hist same");
0222 c->RedrawAxis();
0223
0224
0225 c->Print(Form("%s/centralitycalib_Run54280_ProdA2024_InRunDependence.pdf", plotdir.c_str()));
0226 }
0227 c->Print(Form("%s/centralitycalib_Run54280_ProdA2024_InRunDependence.pdf]", plotdir.c_str()));
0228 }