Back to home page

sPhenix code displayed by LXR

 
 

    


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         // all_felix_BcoDiffHist.push_back(new TH1D(Form("all_felix_BcoDiffHist_%d", i), Form("all_felix_BcoDiffHist_%d;Time_bucket;Entries", i), 128,0,128));
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) // note : dead region
0035             {
0036                 selected_felix_BcoDiffHist.back()->SetBinContent(i + 1, 0);
0037             }
0038 
0039             if (i+1 >= trigger_peak - 1 && i+1 <= trigger_peak + 1) // note : trigger peak
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 }