32void fhcal_profile(TString converted_root_file, TString result_file_name,
int max_entries)
35 TObjArray *canvas_array =
new TObjArray;
36 canvas_array->SetName (
"Canvas");
38 TH1F* calo_summ =
new TH1F(
"calo_summ",
"calo_summ", 300,0,300);
39 calo_summ->SetTitle(Form(
"%s; Energy [mip]; Counts", result_file_name.Data()));
41 TH2F* h2_calo =
new TH2F(
"calo_2d",
"calo_2d", 50,0,1500, 60,0,1200);
42 h2_calo->SetTitle(Form(
"%s; x [mm]; y [mm]; Average signal [mip]", result_file_name.Data()));
43 TH2F* h2_text_center =
new TH2F(
"text_center",
"text_center", 50,0,1500, 60,0,1200);
47 auto ThatVectorX = Mapper->GetUniqueXpositions();
48 auto ThatVectorY = Mapper->GetUniqueYpositions();
49 auto ThatVectorZ = Mapper->GetUniqueZpositions();
52 std::vector<TH1F*> profile_hist_vect;
54 for(
int mod_it = 1; mod_it <
kNmodules; mod_it++)
55 profile_hist_vect.at(mod_it) =
new TH1F(Form(
"module_%i", mod_it),Form(
"module_%i", mod_it),10,0.5,10.5);
57 TFile *_file0 = TFile::Open(converted_root_file,
"READONLY");
58 TTree *tree = (TTree *)_file0->Get(
"bmndata");
60 TClonesArray *DigiArray =
nullptr;
61 tree->SetBranchAddress(
"FHCalDigi", &DigiArray);
63 TClonesArray *ScWallDigiArray =
nullptr;
64 tree->SetBranchAddress(
"ScWallDigi", &ScWallDigiArray);
66 double SumEnergy = 0.;
67 double ScWallCtrEnergy = 0.;
70 int n_events = (max_entries>0 && tree->GetEntries()>max_entries)? max_entries : tree->GetEntries();
71 cout << n_events << endl;
72 for (
int ev = 0; ev < n_events; ev++)
77 for (
int i = 0;
i < ScWallDigiArray->GetEntriesFast();
i++)
83 if(ThisDigi->
fFitR2 > 0.5)
continue;
85 if(cell_id != 14 && cell_id != 15 && cell_id != 24 && cell_id != 25)
continue;
89 if(ScWallCtrEnergy < 60)
continue;
94 for (
int i = 0;
i < DigiArray->GetEntriesFast();
i++)
101 if(ThisDigi->
fFitR2 > 0.2)
continue;
110 profile_hist_vect.at(mod_id)->Fill(sec_id, ThisDigi->
GetSignal());
112 float realXpos = ThatVectorX.at(ThisDigi->GetX());
113 float realYpos = ThatVectorY.at(ThisDigi->GetY());
114 float realZpos = ThatVectorZ.at(ThisDigi->GetZ());
116 h2_calo->Fill(realXpos,realYpos,ThisDigi->
GetSignal());
119 auto ibin = h2_text_center->FindBin(realXpos, realYpos+50);
120 if(h2_text_center->GetBinContent(ibin) < 1)
121 h2_text_center->Fill(realXpos, realYpos+50, ThisDigi->
GetModuleId());
126 calo_summ->Fill(SumEnergy);
131 for(
int mod_it = 1; mod_it <
kNmodules; mod_it++)
132 profile_hist_vect.at(mod_it)->Scale(1./n_events);
134 TCanvas* canv_summ =
new TCanvas;
135 canvas_array->Add(canv_summ);
136 canv_summ->SetLogy();
139 TCanvas* canv_2d =
new TCanvas;
140 gPad->SetRightMargin(0.15);
141 canvas_array->Add(canv_2d);
142 h2_calo->SetBit(TH1::kNoStats);
143 h2_calo->Scale(1./n_events);
144 h2_calo->Draw(
"colz");
145 h2_text_center->SetMarkerSize(1.3);
146 h2_text_center->Draw(
"text same");
167 for (Int_t
i = 0;
i < canvas_array->GetLast ();
i++)
168 ((TCanvas*) canvas_array->At(
i))->SaveAs ( (result_file_name +
".pdf(").Data() );
169 ((TCanvas*) canvas_array->At (canvas_array->GetLast ()))->SaveAs ( (result_file_name +
".pdf)").Data() );
170 printf(
"file %s was written\n", (result_file_name +
".pdf").Data() );