17 TString led_files_path =
"/home/nikolay/BMN/FHCal/LED/";
22 for(uint32_t mod_iter = 1; mod_iter <=54; mod_iter++){
24 TString led_calib_par_file = led_files_path + Form(
"mod%02d.txt", mod_iter);
25 ifstream led_params_file(led_calib_par_file.Data(), std::ifstream::in);
26 cout<<led_calib_par_file<<endl;
27 vector<double> ledVec;
28 if(led_params_file.is_open())
31 led_params_file.seekg(-1, std::ios_base::end);
32 if(led_params_file.peek() ==
'\n')
35 led_params_file.seekg(-1, std::ios_base::cur);
36 int i = led_params_file.tellg();
39 if(led_params_file.peek() ==
'{')
42 led_params_file.get();
46 led_params_file.seekg(
i, std::ios_base::beg);
53 getline(led_params_file, lastline );
54 stringstream ss( lastline );
60 getline(ss, result,
',' );
63 ledVec.at(counter) = stod(result);
67 for(
auto it : ledVec) cout<<it<<
" ";
71 for(uint32_t sec_iter = 1; sec_iter <=10; sec_iter++){
75 double mip_calib = calib_pair.first;
77 cout<<mod_iter<<
" "<<sec_iter<<
" "<<mip_calib<<endl;
78 if(mip_calib < 1e-6) mip_calib = 0.;
79 else mip_calib = 1./mip_calib;
81 final_calib [mod_iter][sec_iter] = mip_calib*ledVec.at(sec_iter-1);
91 TH1 *th1_hist_ptr =
nullptr;
92 TCanvas *tcanv_ptr =
nullptr;
94 TObjArray *result_array =
new TObjArray;
95 result_array->SetName(
"calo_npe_calib");
96 result_array->SetOwner();
98 TObjArray *canvas_array =
new TObjArray;
99 canvas_array->SetName (
"Canvas");
101 for(Int_t module_iter = 1; module_iter <=
kTotalModules; module_iter++)
103 TString module_name = Form(
"bmn_fhcal_module_%02d", module_iter);
104 th1_hist_ptr =
new TH1F(Form(
"Module_%s", module_name.Data()),
105 Form(
"Module_%s", module_name.Data()),
107 th1_hist_ptr->SetTitle(Form(
"%s; #section; Light yield [ph.e./mip]", module_name.Data()));
108 th1_hist_ptr->SetMarkerStyle(23);
109 result_array->Add(th1_hist_ptr);
113 for(Int_t module_iter = 1; module_iter <=
kTotalModules; module_iter++)
115 TString module_name = Form(
"bmn_fhcal_module_%02d", module_iter);
116 th1_hist_ptr = ((TH1*)(gDirectory->FindObjectAny( Form(
"Module_%s", module_name.Data()) )));
117 for(
int sec_iter = 1; sec_iter <= 10; sec_iter++)
118 th1_hist_ptr->Fill(sec_iter, final_calib [module_iter][sec_iter]);
122 gStyle->SetOptStat(0);
123 for(Int_t module_iter = 1; module_iter <=
kTotalModules; module_iter++)
125 tcanv_ptr = &canvas_ly[module_iter];
126 tcanv_ptr->SetName(Form(
"c_light_yield_mod_%i", module_iter));
127 tcanv_ptr->SetTitle(Form(
"c_light_yield_mod_%i", module_iter));
128 canvas_array->Add(tcanv_ptr);
131 TString module_name = Form(
"bmn_fhcal_module_%02d", module_iter);
132 th1_hist_ptr = ((TH1*)(gDirectory->FindObjectAny( Form(
"Module_%s", module_name.Data()) )));
133 th1_hist_ptr->GetYaxis()->SetRangeUser(0, 1.1*th1_hist_ptr->GetMaximum());
134 th1_hist_ptr->Draw(
"hist P");
137 TString result_file_name =
"resss";
138 for (Int_t
i = 0;
i < canvas_array->GetLast ();
i++)
139 ((TCanvas*) canvas_array->At(
i))->SaveAs ((result_file_name +
".pdf(").Data ());
140 ((TCanvas*) canvas_array->At (canvas_array->GetLast ()))->SaveAs ((result_file_name +
".pdf)").Data ());
141 printf(
"file %s was written\n", (result_file_name +
".pdf").Data());
143 TFile *result_file =
new TFile((result_file_name +
".root").Data(),
"RECREATE");
144 TString start_path = result_array->GetName();
145 result_file->mkdir(start_path.Data());
146 result_file->cd(start_path.Data());
147 TIter nx_iter((TCollection*)(result_array));
149 while ( (obj_ptr=(TObjArray*)nx_iter()) )
151 if(obj_ptr ==
nullptr)
continue;
152 printf(
"Writing %s object\n", obj_ptr->GetName());
155 printf(
"file %s was written\n", (result_file_name +
".root").Data());
156 result_file->Close();
static uint32_t GetAddress(uint32_t ModuleType, uint32_t ModuleId, uint32_t SectionId, uint32_t ScintillatorId=0)
Return address from system ID, Module type, Module ID, Section ID, Scintillator ID (optional).