Back to home page

sPhenix code displayed by LXR

 
 

    


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     // int ntotalfile = 5; // for testing
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             // check if the file exists
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         // c->SaveAs(Form("centralitycalib_Run54280_ProdA2024_ntuple%dto%d.pdf", initialidx, initialidx+nfilestorun-1));
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 }