File indexing completed on 2025-08-06 08:12:33
0001 int BkgEstimation_2()
0002 {
0003 TFile * file_in = TFile::Open("/sphenix/tg/tg01/commissioning/INTT/work/cwshih/seflgendata/run_54280/bco_diff/completed/BcoDiffNtuple_54280_clonehitremoveBCO_hotchannelremove_hitQA_checkclonehit_merged.root");
0004
0005 std::pair<int, int> dead_region = {27, 54};
0006 long long trigger_peak = 56;
0007 long long selected_event = 1683940;
0008
0009 std::vector<TH1D *> all_felix_BcoDiffHist; all_felix_BcoDiffHist.clear();
0010
0011 for (int i = 0; i < 8; i++)
0012 {
0013 all_felix_BcoDiffHist.push_back((TH1D *)file_in->Get(Form("all_felix_BcoDiffHist_%d", i)));
0014
0015 }
0016
0017
0018 std::cout << "selected_event = " << selected_event << std::endl;
0019
0020 std::vector<TH1D *> selected_felix_BcoDiffHist;
0021 THStack * hstack1D_total_bcodiff = new THStack("hstack1D_total_bcodiff", "hstack1D_total_bcodiff;Time_bucket;Entries");
0022
0023 std::vector<TH1D *> selected_felix_BcoDiffHist_ratio;
0024 THStack * hstack1D_total_bcodiff_ratio = new THStack("hstack1D_total_bcodiff_ratio", "hstack1D_total_bcodiff_ratio;Time_bucket;Entries");
0025
0026 for (TH1D * hist : all_felix_BcoDiffHist)
0027 {
0028 selected_felix_BcoDiffHist.push_back((TH1D *)hist->Clone(Form("selected_%s", hist->GetName())));
0029
0030
0031
0032 for (int i = 0; i < selected_felix_BcoDiffHist.back()->GetNbinsX(); i++)
0033 {
0034 if (i+1 >= dead_region.first && i+1 <= dead_region.second)
0035 {
0036 selected_felix_BcoDiffHist.back()->SetBinContent(i + 1, 0);
0037 }
0038
0039 if (i+1 >= trigger_peak - 1 && i+1 <= trigger_peak + 1)
0040 {
0041 selected_felix_BcoDiffHist.back()->SetBinContent(i + 1, 0);
0042 }
0043
0044 if ( (i + 1) % 2 != 0)
0045 {
0046 selected_felix_BcoDiffHist.back()->SetBinContent(i + 1, 0);
0047 }
0048 }
0049
0050 selected_felix_BcoDiffHist.back()->SetFillColor(selected_felix_BcoDiffHist.size() + 1);
0051 hstack1D_total_bcodiff->Add(selected_felix_BcoDiffHist.back());
0052
0053 selected_felix_BcoDiffHist_ratio.push_back((TH1D *)selected_felix_BcoDiffHist.back()->Clone(Form("selected_%s_ratio", hist->GetName())));
0054 selected_felix_BcoDiffHist_ratio.back()->Scale(1.0 / double(selected_event));
0055 selected_felix_BcoDiffHist_ratio.back()->SetFillColor(selected_felix_BcoDiffHist_ratio.size() + 1);
0056 hstack1D_total_bcodiff_ratio->Add(selected_felix_BcoDiffHist_ratio.back());
0057 }
0058
0059 TH1D * h1D_total_bcodiff = (TH1D *)((TH1D *)hstack1D_total_bcodiff->GetStack()->Last())->Clone("h1D_total_bcodiff");
0060 h1D_total_bcodiff -> SetFillColorAlpha(1,0);
0061
0062 TH1D * h1D_total_bcodiff_ratio = (TH1D *)((TH1D *)hstack1D_total_bcodiff_ratio->GetStack()->Last())->Clone("h1D_total_bcodiff_ratio");
0063 h1D_total_bcodiff_ratio -> SetFillColorAlpha(1,0);
0064
0065
0066 TH1D * BkgCount_total_bcodiff = new TH1D(Form("BkgCount_total_bcodiff"),Form("BkgCount_total_bcodiff;NInttRawHits (all bkg crossings);Entries"),200,0.1 * pow(10,6), 5 * 8 * pow(10,6));
0067 TH1D * BkgCount_total_bcodiff_ratio = new TH1D(Form("BkgCount_total_bcodiff_ratio"),Form("BkgCount_total_bcodiff_ratio;NInttRawHits (per Bkg. Evt.);Entries"),200,0.1 * pow(10,6) / double (selected_event), 8 * 5 * pow(10,6) / double (selected_event));
0068
0069 for (int i = 0; i < h1D_total_bcodiff->GetNbinsX(); i++){
0070
0071 if (h1D_total_bcodiff->GetBinContent(i+1) == 0) continue;
0072
0073 BkgCount_total_bcodiff -> Fill(h1D_total_bcodiff->GetBinContent(i+1));
0074 BkgCount_total_bcodiff_ratio -> Fill(h1D_total_bcodiff_ratio->GetBinContent(i+1));
0075 }
0076
0077 TFile * file_out = TFile::Open("BkgEstimation.root", "recreate");
0078 for(TH1D * hist : all_felix_BcoDiffHist)
0079 {
0080 hist->Write();
0081 }
0082
0083 for (TH1D * hist : selected_felix_BcoDiffHist)
0084 {
0085 hist->Write();
0086 }
0087 for (TH1D * hist : selected_felix_BcoDiffHist_ratio)
0088 {
0089 hist->Write();
0090 }
0091
0092 hstack1D_total_bcodiff->Write();
0093 h1D_total_bcodiff->Write();
0094
0095 hstack1D_total_bcodiff_ratio->Write();
0096 h1D_total_bcodiff_ratio->Write();
0097
0098 BkgCount_total_bcodiff->Write();
0099 BkgCount_total_bcodiff_ratio->Write();
0100
0101 file_out->Close();
0102
0103 return 0;
0104 }