12 #include <beast/analysis/modules/NtuplePhase1_v6Module.h>
13 #include <beast/analysis/modules/BEASTTree_v5.h>
16 #include <framework/datastore/DataStore.h>
17 #include <framework/datastore/StoreObjPtr.h>
20 #include <framework/logging/Logger.h>
21 #include <framework/core/RandomNumbers.h>
24 #include <framework/io/RootIOUtilities.h>
25 #include <framework/dataobjects/EventMetaData.h>
40 using namespace RootIOUtilities;
55 setDescription(
"Read SKB PVs, simulated measurements of BEAST sensors, and write scaled simulated Ntuple in BEAST phase 1 data format");
59 addParam(
"inputFileNames", m_inputFileNames,
60 "List of files with SKB PVs ");
62 addParam(
"outputFileName", m_outputFileName,
"Output file name");
66 addParam(
"input_Time_eqv", m_input_Time_eqv,
"time-eqv");
68 addParam(
"input_I_HER", m_input_I_HER,
"HER current");
69 addParam(
"input_I_LER", m_input_I_LER,
"LER current");
71 addParam(
"input_P_HER", m_input_P_HER,
"HER pressure");
72 addParam(
"input_P_LER", m_input_P_LER,
"LER pressure");
74 addParam(
"input_sigma_x_HER", m_input_sigma_x_HER,
"HER beam size");
75 addParam(
"input_sigma_x_LER", m_input_sigma_x_LER,
"LER beam size");
76 addParam(
"input_sigma_y_HER", m_input_sigma_y_HER,
"HER beam size");
77 addParam(
"input_sigma_y_LER", m_input_sigma_y_LER,
"LER beam size");
79 addParam(
"input_bunchNb_HER", m_input_bunchNb_HER,
"HER bunch number");
80 addParam(
"input_bunchNb_LER", m_input_bunchNb_LER,
"LER bunch number");
82 addParam(
"input_data_bunchNb_HER", m_input_data_bunchNb_HER,
"HER bunch number");
83 addParam(
"input_data_bunchNb_LER", m_input_data_bunchNb_LER,
"LER bunch number");
84 addParam(
"input_data_SingleBeam", m_input_data_SingleBeam,
"LER/HER/Both");
86 addParam(
"input_LT_SAD_RLR", m_input_LT_SAD_RLR,
"SAD Low Ring Loss Rate");
87 addParam(
"input_HT_SAD_RLR", m_input_HT_SAD_RLR,
"SAD High Ring Loss Rate");
88 addParam(
"input_LC_SAD_RLR", m_input_LC_SAD_RLR,
"SAD Low Ring Loss Rate");
89 addParam(
"input_HC_SAD_RLR", m_input_HC_SAD_RLR,
"SAD High Ring Loss Rate");
90 addParam(
"input_LB_SAD_RLR", m_input_LB_SAD_RLR,
"SAD Low Ring Loss Rate");
91 addParam(
"input_HB_SAD_RLR", m_input_HB_SAD_RLR,
"SAD High Ring Loss Rate");
92 addParam(
"input_LC_SAD_RLR_av", m_input_LC_SAD_RLR_av,
"SAD Low Ring Loss Rate");
93 addParam(
"input_HC_SAD_RLR_av", m_input_HC_SAD_RLR_av,
"SAD High Ring Loss Rate");
94 addParam(
"input_LB_SAD_RLR_av", m_input_LB_SAD_RLR_av,
"SAD Low Ring Loss Rate");
95 addParam(
"input_HB_SAD_RLR_av", m_input_HB_SAD_RLR_av,
"SAD High Ring Loss Rate");
97 addParam(
"input_BGSol", m_input_BGSol,
"BG solution 0 or 1");
98 addParam(
"input_ToSol", m_input_ToSol,
"To solution 0 or 1");
100 addParam(
"input_Z", m_input_Z,
"Z number");
102 addParam(
"input_GasCorrection", m_input_GasCorrection,
"GasCorrection");
104 addParam(
"input_part", m_input_part,
"Part");
106 addParam(
"inputHistoFileNames", m_inputHistoFileNames,
107 "List of root files with histograms");
109 addParam(
"inputRateHistoNames", m_inputRateHistoNames,
110 "List of rate histograms");
111 addParam(
"inputDoseHistoNames", m_inputDoseHistoNames,
112 "List of dose histograms");
113 addParam(
"inputRateHistoNamesVrs", m_inputRateHistoNamesVrs,
114 "List of rate histograms");
115 addParam(
"inputDoseHistoNamesVrs", m_inputDoseHistoNamesVrs,
116 "List of dose histograms");
119 addParam(
"input_PIN_width", m_input_PIN_width,
"PIN width");
120 addParam(
"input_HE3_EfCor", m_input_HE3_EfCor,
"HE3 inefficiency correction");
134 NtuplePhase1_v6Module::~NtuplePhase1_v6Module()
138 void NtuplePhase1_v6Module::initialize()
144 if (m_inputFileNames.empty()) {
145 B2FATAL(
"No valid files specified!");
149 TDirectory* dir = gDirectory;
150 for (
const string& fileName : m_inputFileNames) {
151 TFile* f = TFile::Open(fileName.c_str(),
"READ");
152 if (!f or !f->IsOpen()) {
153 B2FATAL(
"Couldn't open input file " + fileName);
161 m_tree =
new TChain(
"tout");
162 for (
const string& fileName : m_inputFileNames) {
163 m_tree->AddFile(fileName.c_str());
165 m_numEvents = m_tree->GetEntries();
166 if (m_numEvents == 0) B2ERROR(
c_treeNames[DataStore::c_Event] <<
" has no entires");
169 m_tree->SetBranchAddress(
"ts", &(m_beast.ts));
170 m_tree->SetBranchAddress(
"event", &(m_beast.event));
171 m_tree->SetBranchAddress(
"run", &(m_beast.run));
172 m_tree->SetBranchAddress(
"subrun", &(m_beast.subrun));
173 m_tree->SetBranchAddress(
"SKB_HER_injectionFlag", &(m_beast.SKB_HER_injectionFlag));
174 m_tree->SetBranchAddress(
"SKB_LER_injectionFlag", &(m_beast.SKB_LER_injectionFlag));
175 m_tree->SetBranchAddress(
"SKB_HER_injectionFlag_safe", &(m_beast.SKB_HER_injectionFlag_safe));
176 m_tree->SetBranchAddress(
"SKB_LER_injectionFlag_safe", &(m_beast.SKB_LER_injectionFlag_safe));
177 m_tree->SetBranchAddress(
"SKB_HER_abortFlag", &(m_beast.SKB_HER_abortFlag));
178 m_tree->SetBranchAddress(
"SKB_LER_abortFlag", &(m_beast.SKB_LER_abortFlag));
179 m_tree->SetBranchAddress(
"SKB_HER_abortFlag_safe", &(m_beast.SKB_HER_abortFlag_safe));
180 m_tree->SetBranchAddress(
"SKB_LER_abortFlag_safe", &(m_beast.SKB_LER_abortFlag_safe));
181 m_tree->SetBranchAddress(
"SKB_Status", &(m_beast.SKB_Status));
182 m_tree->SetBranchAddress(
"SKB_HER_injectionRate", &(m_beast.SKB_HER_injectionRate));
183 m_tree->SetBranchAddress(
"SKB_LER_injectionRate", &(m_beast.SKB_LER_injectionRate));
184 m_tree->SetBranchAddress(
"SKB_HER_lifetime", &(m_beast.SKB_HER_lifetime));
185 m_tree->SetBranchAddress(
"SKB_LER_lifetime", &(m_beast.SKB_LER_lifetime));
186 m_tree->SetBranchAddress(
"SKB_LER_current", &(m_beast.SKB_LER_current));
187 m_tree->SetBranchAddress(
"SKB_HER_current", &(m_beast.SKB_HER_current));
188 m_tree->SetBranchAddress(
"SKB_LER_injectionEfficiency", &(m_beast.SKB_LER_injectionEfficiency));
189 m_tree->SetBranchAddress(
"SKB_HER_injectionEfficiency", &(m_beast.SKB_HER_injectionEfficiency));
190 m_tree->SetBranchAddress(
"SKB_beamLoss_ionChambers_mean", &(m_beast.SKB_beamLoss_ionChambers_mean));
191 m_tree->SetBranchAddress(
"SKB_beamLoss_PINdiodes_mean", &(m_beast.SKB_beamLoss_PINdiodes_mean));
192 m_tree->SetBranchAddress(
"SKB_beamLoss_nearCollimators", &(m_beast.SKB_beamLoss_nearCollimators));
193 m_tree->SetBranchAddress(
"SKB_beamLoss_aroundMasks", &(m_beast.SKB_beamLoss_aroundMasks));
194 m_tree->SetBranchAddress(
"SKB_LER_injectionCharge", &(m_beast.SKB_LER_injectionCharge));
195 m_tree->SetBranchAddress(
"SKB_HER_injectionCharge", &(m_beast.SKB_HER_injectionCharge));
196 m_tree->SetBranchAddress(
"SKB_LER_injectionRepetitionRate", &(m_beast.SKB_LER_injectionRepetitionRate));
197 m_tree->SetBranchAddress(
"SKB_HER_injectionRepetitionRate", &(m_beast.SKB_HER_injectionRepetitionRate));
198 m_tree->SetBranchAddress(
"SKB_LER_injectionNumberOfBunches", &(m_beast.SKB_LER_injectionNumberOfBunches));
199 m_tree->SetBranchAddress(
"SKB_HER_injectionNumberOfBunches", &(m_beast.SKB_HER_injectionNumberOfBunches));
200 m_tree->SetBranchAddress(
"SKB_LER_pressures", &(m_beast.SKB_LER_pressures));
201 m_tree->SetBranchAddress(
"SKB_HER_pressures", &(m_beast.SKB_HER_pressures));
202 m_tree->SetBranchAddress(
"SKB_LER_pressure_average", &(m_beast.SKB_LER_pressure_average));
203 m_tree->SetBranchAddress(
"SKB_HER_pressure_average", &(m_beast.SKB_HER_pressure_average));
204 m_tree->SetBranchAddress(
"SKB_LER_pressures_corrected", &(m_beast.SKB_LER_pressures_corrected));
205 m_tree->SetBranchAddress(
"SKB_HER_pressures_corrected", &(m_beast.SKB_HER_pressures_corrected));
206 m_tree->SetBranchAddress(
"SKB_LER_pressure_average_corrected", &(m_beast.SKB_LER_pressure_average_corrected));
207 m_tree->SetBranchAddress(
"SKB_HER_pressure_average_corrected", &(m_beast.SKB_HER_pressure_average_corrected));
208 m_tree->SetBranchAddress(
"SKB_HER_collimatorPositions_mm", &(m_beast.SKB_HER_collimatorPositions_mm));
209 m_tree->SetBranchAddress(
"SKB_HER_collimatorPositions_DMM", &(m_beast.SKB_HER_collimatorPositions_DMM));
210 m_tree->SetBranchAddress(
"SKB_HER_collimatorPositions_inX", &(m_beast.SKB_HER_collimatorPositions_inX));
211 m_tree->SetBranchAddress(
"SKB_HER_collimatorPositions_inY", &(m_beast.SKB_HER_collimatorPositions_inY));
212 m_tree->SetBranchAddress(
"SKB_HER_collimatorPositions_fromBeam", &(m_beast.SKB_HER_collimatorPositions_fromBeam));
213 m_tree->SetBranchAddress(
"SKB_LER_collimatorPositions_mm", &(m_beast.SKB_LER_collimatorPositions_mm));
214 m_tree->SetBranchAddress(
"SKB_LER_collimatorPositions_X", &(m_beast.SKB_LER_collimatorPositions_X));
215 m_tree->SetBranchAddress(
"SKB_LER_collimatorPositions_Y", &(m_beast.SKB_LER_collimatorPositions_Y));
216 m_tree->SetBranchAddress(
"SKB_LER_collimatorPositions_fromBeam", &(m_beast.SKB_LER_collimatorPositions_fromBeam));
217 m_tree->SetBranchAddress(
"SKB_HER_beamSize_xray_X", &(m_beast.SKB_HER_beamSize_xray_X));
218 m_tree->SetBranchAddress(
"SKB_HER_beamSize_xray_Y", &(m_beast.SKB_HER_beamSize_xray_Y));
219 m_tree->SetBranchAddress(
"SKB_HER_correctedBeamSize_xray_Y", &(m_beast.SKB_HER_correctedBeamSize_xray_Y));
220 m_tree->SetBranchAddress(
"SKB_LER_beamSize_xray_X", &(m_beast.SKB_LER_beamSize_xray_X));
221 m_tree->SetBranchAddress(
"SKB_LER_beamSize_xray_Y", &(m_beast.SKB_LER_beamSize_xray_Y));
222 m_tree->SetBranchAddress(
"SKB_LER_correctedBeamSize_xray_Y", &(m_beast.SKB_LER_correctedBeamSize_xray_Y));
223 m_tree->SetBranchAddress(
"SKB_LER_beamSize_SR_X", &(m_beast.SKB_LER_beamSize_SR_X));
224 m_tree->SetBranchAddress(
"SKB_LER_beamSize_SR_Y", &(m_beast.SKB_LER_beamSize_SR_Y));
225 m_tree->SetBranchAddress(
"SKB_HER_beamSize_SR_X", &(m_beast.SKB_HER_beamSize_SR_X));
226 m_tree->SetBranchAddress(
"SKB_HER_beamSize_SR_Y", &(m_beast.SKB_HER_beamSize_SR_Y));
227 m_tree->SetBranchAddress(
"SKB_HER_integratedCurrent", &(m_beast.SKB_HER_integratedCurrent));
228 m_tree->SetBranchAddress(
"SKB_LER_integratedCurrent", &(m_beast.SKB_LER_integratedCurrent));
229 m_tree->SetBranchAddress(
"SKB_LER_partialPressures_D06", &(m_beast.SKB_LER_partialPressures_D06));
230 m_tree->SetBranchAddress(
"SKB_LER_partialPressures_D02", &(m_beast.SKB_LER_partialPressures_D02));
231 m_tree->SetBranchAddress(
"SKB_LER_pressures_local", &(m_beast.SKB_LER_pressures_local));
232 m_tree->SetBranchAddress(
"SKB_HER_pressures_local", &(m_beast.SKB_HER_pressures_local));
233 m_tree->SetBranchAddress(
"SKB_LER_pressures_local_corrected", &(m_beast.SKB_LER_pressures_local_corrected));
234 m_tree->SetBranchAddress(
"SKB_HER_pressures_local_corrected", &(m_beast.SKB_HER_pressures_local_corrected));
235 m_tree->SetBranchAddress(
"SKB_LER_Zeff_D02", &(m_beast.SKB_LER_Zeff_D02));
236 m_tree->SetBranchAddress(
"SKB_LER_Zeff_D06", &(m_beast.SKB_LER_Zeff_D06));
237 m_tree->SetBranchAddress(
"CSI_sumE", &(m_beast.CSI_data_sumE));
238 m_tree->SetBranchAddress(
"BGO_dose", &(m_beast.BGO_data_dose));
239 m_tree->SetBranchAddress(
"PIN_dose", &(m_beast.PIN_data_dose));
240 m_tree->SetBranchAddress(
"DIA_dose", &(m_beast.DIA_data_dose));
242 m_tree->SetBranchAddress(
"HE3_rate", &(m_beast.HE3_data_rate));
243 m_tree->SetBranchAddress(
"CSI_hitRate", &(m_beast.CSI_data_rate));
244 m_tree->SetBranchAddress(
"CSI_binnedE", &(m_beast.CSI_data_Ebin));
245 m_tree->SetBranchAddress(
"SCI_rate", &(m_beast.QCSS_data_rate));
246 m_tree->SetBranchAddress(
"CLW_N_MIPs_online", &(m_beast.CLAWS_data_rate));
248 if (m_numEvents > 0) {
250 m_DayBin = (int)((m_beast.ts - 1454943600) / 60. / 60. / 24.);
255 if (m_inputFileNames.empty()) {
256 B2FATAL(
"No valid files specified!");
259 fctRate_HB =
new TF1(
"fctRate_HB",
"[0] * x*x * log([1] / TMath::Power(x,1./3.) + [2])", 1.0, 19.0);
260 fctRate_LB =
new TF1(
"fctRate_LB",
"[0] * x*x * log([1] / TMath::Power(x,1./3.) + [2])", 1.0, 19.0);
261 fctRate_HC =
new TF1(
"fctRate_HC",
"[0] * x*x / TMath::Power( ([1] / TMath::Power(x,1./3.) + [2]), 2.)", 1.0, 19.0);
262 fctRate_LC =
new TF1(
"fctRate_LC",
"[0] * x*x / TMath::Power( ([1] / TMath::Power(x,1./3.) + [2]), 2.)", 1.0, 19.0);
263 fctRate_HB->SetParameters(0.183373, 0.117173, 1.23431);
264 fctRate_LB->SetParameters(0.900838, 0.0455552, 1.10098);
265 fctRate_HC->SetParameters(1.80992, -0.000115401, 8.4047);
266 fctRate_LC->SetParameters(0.210872, -4.50637e-06, 1.64209);
267 m_input_Z_scaling[0] = fctRate_HC->Eval(m_input_Z[0]) / fctRate_HC->Eval(7);
268 m_input_Z_scaling[1] = fctRate_LC->Eval(m_input_Z[1]) / fctRate_LC->Eval(7);
269 m_input_Z_scaling[2] = fctRate_HB->Eval(m_input_Z[2]) / fctRate_HB->Eval(7);
270 m_input_Z_scaling[3] = fctRate_LB->Eval(m_input_Z[3]) / fctRate_LB->Eval(7);
272 if (m_input_Z[0] == 0) m_input_Z_scaling[0] = 0;
273 if (m_input_Z[1] == 0) m_input_Z_scaling[1] = 0;
274 if (m_input_Z[2] == 0) m_input_Z_scaling[2] = 0;
275 if (m_input_Z[3] == 0) m_input_Z_scaling[3] = 0;
280 const double RadConv = 6.24e7;
283 TDirectory* dirh = gDirectory;
286 for (
const TString& fileName : m_inputHistoFileNames) {
287 fh[iter] = TFile::Open(fileName,
"READ");
288 if (!fh[iter] or !fh[iter]->IsOpen()) {
289 B2FATAL(
"Couldn't open input file " + fileName);
291 if (fileName.Contains(
"Touschek") || fileName.Contains(
"Coulomb") || fileName.Contains(
"Brems")) {
292 for (
const TString& HistoRateName : m_inputRateHistoNames) {
295 if (HistoRateName.Contains(
"csi")) h1D = (TH1F*)fh[iter]->Get(TString::Format(
"csi_rate_%d", m_DayBin));
296 else h1D = (TH1F*)fh[iter]->Get(HistoRateName);
298 for (
int i = 0; i < h1D->GetNbinsX(); i++) {
299 double counts = h1D->GetBinContent(i + 1);
300 double rate = counts / m_input_Time_eqv;
302 if (fileName.Contains(
"Coulomb")) {
303 if (fileName.Contains(
"HER")) rate *= m_input_Z_scaling[0];
304 if (fileName.Contains(
"LER")) rate *= m_input_Z_scaling[1];
306 if (fileName.Contains(
"Brems")) {
307 if (fileName.Contains(
"HER")) rate *= m_input_Z_scaling[2];
308 if (fileName.Contains(
"LER")) rate *= m_input_Z_scaling[3];
311 if (HistoRateName.Contains(
"Def")) rate *= m_input_HE3_EfCor[i];
313 if (fileName.Contains(
"HER")) {
314 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Touschek")) m_input_HT_QCSS_rate.push_back(rate);
315 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Touschek")) m_input_HT_CLAWS_rate.push_back(rate);
316 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Touschek")) m_input_HT_CSI_rate.push_back(rate);
317 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Touschek")) m_input_HT_HE3_rate.push_back(rate);
318 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Touschek")) m_input_HT_TPC_rate.push_back(rate);
319 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Touschek")) m_input_HT_TPC_angular_rate.push_back(rate);
320 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Touschek")) m_input_HT_TPC_angular_dose.push_back(rate);
321 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Brems")) m_input_HB_QCSS_rate_av.push_back(rate);
322 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Brems")) m_input_HB_CLAWS_rate_av.push_back(rate);
323 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Brems")) m_input_HB_CSI_rate_av.push_back(rate);
324 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Brems")) m_input_HB_HE3_rate_av.push_back(rate);
325 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Brems")) m_input_HB_TPC_rate_av.push_back(rate);
326 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Brems")) m_input_HB_TPC_angular_rate_av.push_back(rate);
327 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Brems")) m_input_HB_TPC_angular_dose_av.push_back(rate);
328 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Coulomb")) m_input_HC_QCSS_rate_av.push_back(rate);
329 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Coulomb")) m_input_HC_CLAWS_rate_av.push_back(rate);
330 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Coulomb")) m_input_HC_CSI_rate_av.push_back(rate);
331 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Coulomb")) m_input_HC_HE3_rate_av.push_back(rate);
332 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Coulomb")) m_input_HC_TPC_rate_av.push_back(rate);
333 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Coulomb")) m_input_HC_TPC_angular_rate_av.push_back(rate);
334 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Coulomb")) m_input_HC_TPC_angular_dose_av.push_back(rate);
336 if (fileName.Contains(
"LER")) {
337 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Touschek")) m_input_LT_QCSS_rate.push_back(rate);
338 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Touschek")) m_input_LT_CLAWS_rate.push_back(rate);
339 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Touschek")) m_input_LT_CSI_rate.push_back(rate);
340 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Touschek")) m_input_LT_HE3_rate.push_back(rate);
341 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Touschek")) m_input_LT_TPC_rate.push_back(rate);
342 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Touschek")) m_input_LT_TPC_angular_rate.push_back(rate);
343 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Touschek")) m_input_LT_TPC_angular_dose.push_back(rate);
344 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Brems")) m_input_LB_QCSS_rate_av.push_back(rate);
345 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Brems")) m_input_LB_CLAWS_rate_av.push_back(rate);
346 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Brems")) m_input_LB_CSI_rate_av.push_back(rate);
347 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Brems")) m_input_LB_HE3_rate_av.push_back(rate);
348 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Brems")) m_input_LB_TPC_rate_av.push_back(rate);
349 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Brems")) m_input_LB_TPC_angular_rate_av.push_back(rate);
350 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Brems")) m_input_LB_TPC_angular_dose_av.push_back(rate);
351 if (HistoRateName.Contains(
"qcss") && fileName.Contains(
"Coulomb")) m_input_LC_QCSS_rate_av.push_back(rate);
352 if (HistoRateName.Contains(
"claws") && fileName.Contains(
"Coulomb")) m_input_LC_CLAWS_rate_av.push_back(rate);
353 if (HistoRateName.Contains(
"csi") && fileName.Contains(
"Coulomb")) m_input_LC_CSI_rate_av.push_back(rate);
354 if (HistoRateName.Contains(
"Def") && fileName.Contains(
"Coulomb")) m_input_LC_HE3_rate_av.push_back(rate);
355 if (HistoRateName.Contains(
"tpc_rate") && fileName.Contains(
"Coulomb")) m_input_LC_TPC_rate_av.push_back(rate);
356 if (HistoRateName.Contains(
"tpc_angular_rate") && fileName.Contains(
"Coulomb")) m_input_LC_TPC_angular_rate_av.push_back(rate);
357 if (HistoRateName.Contains(
"tpc_angular_dose") && fileName.Contains(
"Coulomb")) m_input_LC_TPC_angular_dose_av.push_back(rate);
362 for (
const TString& HistoDoseName : m_inputDoseHistoNames) {
365 if (HistoDoseName.Contains(
"csi")) imax = 18;
366 if (HistoDoseName.Contains(
"bgo")) imax = 8;
367 if (HistoDoseName.Contains(
"pin")) {
369 volume = 0.265 * 0.265 * m_input_PIN_width;
371 mass = rho * volume * 1e-3;
373 if (HistoDoseName.Contains(
"dia")) {
375 volume = 0.4 * 0.4 * 0.05;
377 mass = rho * volume * 1e-3;
379 if (HistoDoseName.Contains(
"dosi")) {
381 volume = 0.265 * 0.265 * 0.01;
383 mass = rho * volume * 1e-3;
385 if (HistoDoseName.Contains(
"tpc")) {
387 volume = 10.8537 * 2.0 * 1.68;
389 mass = rho * volume * 1e-3;
391 for (
int i = 0; i < imax; i++) {
394 if (HistoDoseName.Contains(
"csi")) {
395 he = (TH1F*)fh[iter]->Get(TString::Format(
"csi_dedep_%d_%d", i, m_DayBin));
397 he = (TH1F*)fh[iter]->Get(TString::Format(
"%s_%d", HistoDoseName.Data(), i));
402 for (
int j = 0; j < he->GetNbinsX(); j++) {
403 double co = he->GetBinContent(j + 1);
404 double va = he->GetXaxis()->GetBinCenter(j + 1);
405 double esumbin = va * co;
407 if (fileName.Contains(
"Coulomb")) {
408 if (fileName.Contains(
"HER")) esumbin *= m_input_Z_scaling[0];
409 if (fileName.Contains(
"LER")) esumbin *= m_input_Z_scaling[1];
411 if (fileName.Contains(
"Brems")) {
412 if (fileName.Contains(
"HER")) esumbin *= m_input_Z_scaling[2];
413 if (fileName.Contains(
"LER")) esumbin *= m_input_Z_scaling[3];
417 if (HistoDoseName.Contains(
"csi_energy")) {
418 if (fileName.Contains(
"HER")) {
419 if (fileName.Contains(
"Touschek")) m_input_HT_CSI_dose_binE.push_back(esumbin / m_input_Time_eqv * 1e-3);
420 if (fileName.Contains(
"Coulomb")) m_input_HC_CSI_dose_binE_av.push_back(esumbin / m_input_Time_eqv * 1e-3);
421 if (fileName.Contains(
"Brems")) m_input_HB_CSI_dose_binE_av.push_back(esumbin / m_input_Time_eqv * 1e-3);
423 if (fileName.Contains(
"LER")) {
424 if (fileName.Contains(
"Touschek")) m_input_LT_CSI_dose_binE.push_back(esumbin / m_input_Time_eqv * 1e-3);
425 if (fileName.Contains(
"Coulomb")) m_input_LC_CSI_dose_binE_av.push_back(esumbin / m_input_Time_eqv * 1e-3);
426 if (fileName.Contains(
"Brems")) m_input_LB_CSI_dose_binE_av.push_back(esumbin / m_input_Time_eqv * 1e-3);
430 if (fileName.Contains(
"HER")) {
431 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
432 && fileName.Contains(
"Touschek")) m_input_HT_CSI_dose.push_back(esum / m_input_Time_eqv * 1e-3);
433 if (HistoDoseName.Contains(
"bgo")
434 && fileName.Contains(
"Touschek")) m_input_HT_BGO_dose.push_back(esum / m_input_Time_eqv * 1e-3);
435 if (HistoDoseName.Contains(
"pin")
436 && fileName.Contains(
"Touschek")) m_input_HT_PIN_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
437 if (HistoDoseName.Contains(
"dosi")
438 && fileName.Contains(
"Touschek")) m_input_HT_DOSI.push_back(esum / m_input_Time_eqv / mass / RadConv);
439 if (HistoDoseName.Contains(
"tpc_dose")
440 && fileName.Contains(
"Touschek")) m_input_HT_TPC_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
444 if (HistoDoseName.Contains(
"dia")
445 && fileName.Contains(
"Touschek")) m_input_HT_DIA_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
446 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
447 && fileName.Contains(
"Brems")) m_input_HB_CSI_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
448 if (HistoDoseName.Contains(
"bgo")
449 && fileName.Contains(
"Brems")) m_input_HB_BGO_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
450 if (HistoDoseName.Contains(
"pin")
451 && fileName.Contains(
"Brems")) m_input_HB_PIN_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
452 if (HistoDoseName.Contains(
"dosi")
453 && fileName.Contains(
"Brems")) m_input_HB_DOSI_av.push_back(esum / m_input_Time_eqv / mass / RadConv);
454 if (HistoDoseName.Contains(
"tpc_dose")
455 && fileName.Contains(
"Brems")) m_input_HB_TPC_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
459 if (HistoDoseName.Contains(
"dia")
460 && fileName.Contains(
"Brems")) m_input_HB_DIA_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
461 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
462 && fileName.Contains(
"Coulomb")) m_input_HC_CSI_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
463 if (HistoDoseName.Contains(
"bgo")
464 && fileName.Contains(
"Coulomb")) m_input_HC_BGO_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
465 if (HistoDoseName.Contains(
"pin")
466 && fileName.Contains(
"Coulomb")) m_input_HC_PIN_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
467 if (HistoDoseName.Contains(
"dosi")
468 && fileName.Contains(
"Coulomb")) m_input_HC_DOSI_av.push_back(esum / m_input_Time_eqv / mass / RadConv);
469 if (HistoDoseName.Contains(
"tpc_dose")
470 && fileName.Contains(
"Coulomb")) m_input_HC_TPC_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
474 if (HistoDoseName.Contains(
"dia")
475 && fileName.Contains(
"Coulomb")) m_input_HC_DIA_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
477 if (fileName.Contains(
"LER")) {
478 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
479 && fileName.Contains(
"Touschek")) m_input_LT_CSI_dose.push_back(esum / m_input_Time_eqv * 1e-3);
480 if (HistoDoseName.Contains(
"bgo")
481 && fileName.Contains(
"Touschek")) m_input_LT_BGO_dose.push_back(esum / m_input_Time_eqv * 1e-3);
482 if (HistoDoseName.Contains(
"pin")
483 && fileName.Contains(
"Touschek")) m_input_LT_PIN_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
484 if (HistoDoseName.Contains(
"dosi")
485 && fileName.Contains(
"Touschek")) m_input_LT_DOSI.push_back(esum / m_input_Time_eqv / mass / RadConv);
486 if (HistoDoseName.Contains(
"tpc_dose")
487 && fileName.Contains(
"Touschek")) m_input_LT_TPC_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
491 if (HistoDoseName.Contains(
"dia")
492 && fileName.Contains(
"Touschek")) m_input_LT_DIA_dose.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
493 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
494 && fileName.Contains(
"Brems")) m_input_LB_CSI_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
495 if (HistoDoseName.Contains(
"bgo")
496 && fileName.Contains(
"Brems")) m_input_LB_BGO_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
497 if (HistoDoseName.Contains(
"pin")
498 && fileName.Contains(
"Brems")) m_input_LB_PIN_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
499 if (HistoDoseName.Contains(
"dosi")
500 && fileName.Contains(
"Brems")) m_input_LB_DOSI_av.push_back(esum / m_input_Time_eqv / mass / RadConv);
501 if (HistoDoseName.Contains(
"tpc_dose")
502 && fileName.Contains(
"Brems")) m_input_LB_TPC_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
506 if (HistoDoseName.Contains(
"dia")
507 && fileName.Contains(
"Brems")) m_input_LB_DIA_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
508 if (HistoDoseName.Contains(
"csi") && HistoDoseName.Contains(
"edep")
509 && fileName.Contains(
"Coulomb")) m_input_LC_CSI_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
510 if (HistoDoseName.Contains(
"bgo")
511 && fileName.Contains(
"Coulomb")) m_input_LC_BGO_dose_av.push_back(esum / m_input_Time_eqv * 1e-3);
512 if (HistoDoseName.Contains(
"pin")
513 && fileName.Contains(
"Coulomb")) m_input_LC_PIN_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
514 if (HistoDoseName.Contains(
"dosi")
515 && fileName.Contains(
"Coulomb")) m_input_LC_DOSI_av.push_back(esum / m_input_Time_eqv / mass / RadConv);
516 if (HistoDoseName.Contains(
"tpc_dose")
517 && fileName.Contains(
"Coulomb")) m_input_LC_TPC_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
521 if (HistoDoseName.Contains(
"dia")
522 && fileName.Contains(
"Coulomb")) m_input_LC_DIA_dose_av.push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
528 if (fileName.Contains(
"Coulomb") || fileName.Contains(
"Brems")) {
529 for (
const TString& HistoRateName : m_inputRateHistoNamesVrs) {
532 if (HistoRateName.Contains(
"csi")) h2D = (TH2F*)fh[iter]->Get(TString::Format(
"csi_rs_drate_%d", m_DayBin));
533 else h2D = (TH2F*)fh[iter]->Get(HistoRateName);
535 for (
int k = 0; k < h2D->GetNbinsY(); k++) {
536 for (
int i = 0; i < h2D->GetNbinsX(); i++) {
537 double counts = h2D->GetBinContent(i + 1, k + 1);
538 double rate = counts / m_input_Time_eqv;
540 if (fileName.Contains(
"Coulomb")) {
541 if (fileName.Contains(
"HER")) rate *= m_input_Z_scaling[0];
542 if (fileName.Contains(
"LER")) rate *= m_input_Z_scaling[1];
544 if (fileName.Contains(
"Brems")) {
545 if (fileName.Contains(
"HER")) rate *= m_input_Z_scaling[2];
546 if (fileName.Contains(
"LER")) rate *= m_input_Z_scaling[3];
549 if (HistoRateName.Contains(
"Def")) rate *= m_input_HE3_EfCor[i];
551 if (fileName.Contains(
"Coulomb_HER")) {
552 if (HistoRateName.Contains(
"qcss")) m_input_HC_QCSS_rate[k].push_back(rate);
553 if (HistoRateName.Contains(
"claws")) m_input_HC_CLAWS_rate[k].push_back(rate);
554 if (HistoRateName.Contains(
"csi")) m_input_HC_CSI_rate[k].push_back(rate);
555 if (HistoRateName.Contains(
"Def")) m_input_HC_HE3_rate[k].push_back(rate);
556 if (HistoRateName.Contains(
"tpc_rate")) m_input_HC_TPC_rate[k].push_back(rate);
557 if (HistoRateName.Contains(
"tpc_angular_rate")) m_input_HC_TPC_angular_rate[k].push_back(rate);
558 if (HistoRateName.Contains(
"tpc_angular_dose")) m_input_HC_TPC_angular_dose[k].push_back(rate);
560 if (fileName.Contains(
"Coulomb_LER")) {
561 if (HistoRateName.Contains(
"qcss")) m_input_LC_QCSS_rate[k].push_back(rate);
562 if (HistoRateName.Contains(
"claws")) m_input_LC_CLAWS_rate[k].push_back(rate);
563 if (HistoRateName.Contains(
"csi")) m_input_LC_CSI_rate[k].push_back(rate);
564 if (HistoRateName.Contains(
"Def")) m_input_LC_HE3_rate[k].push_back(rate);
565 if (HistoRateName.Contains(
"tpc_rate")) m_input_LC_TPC_rate[k].push_back(rate);
566 if (HistoRateName.Contains(
"tpc_angular_rate")) m_input_LC_TPC_angular_rate[k].push_back(rate);
567 if (HistoRateName.Contains(
"tpc_angular_dose")) m_input_LC_TPC_angular_dose[k].push_back(rate);
569 if (fileName.Contains(
"Brems_HER")) {
570 if (HistoRateName.Contains(
"qcss")) m_input_HB_QCSS_rate[k].push_back(rate);
571 if (HistoRateName.Contains(
"claws")) m_input_HB_CLAWS_rate[k].push_back(rate);
572 if (HistoRateName.Contains(
"csi")) m_input_HB_CSI_rate[k].push_back(rate);
573 if (HistoRateName.Contains(
"Def")) m_input_HB_HE3_rate[k].push_back(rate);
574 if (HistoRateName.Contains(
"tpc_rate")) m_input_HB_TPC_rate[k].push_back(rate);
575 if (HistoRateName.Contains(
"tpc_angular_rate")) m_input_HB_TPC_angular_rate[k].push_back(rate);
576 if (HistoRateName.Contains(
"tpc_angular_dose")) m_input_HB_TPC_angular_dose[k].push_back(rate);
578 if (fileName.Contains(
"Brems_LER")) {
579 if (HistoRateName.Contains(
"qcss")) m_input_LB_QCSS_rate[k].push_back(rate);
580 if (HistoRateName.Contains(
"claws")) m_input_LB_CLAWS_rate[k].push_back(rate);
581 if (HistoRateName.Contains(
"csi")) m_input_LB_CSI_rate[k].push_back(rate);
582 if (HistoRateName.Contains(
"Def")) m_input_LB_HE3_rate[k].push_back(rate);
583 if (HistoRateName.Contains(
"tpc_rate")) m_input_LB_TPC_rate[k].push_back(rate);
584 if (HistoRateName.Contains(
"tpc_angular_rate")) m_input_LB_TPC_angular_rate[k].push_back(rate);
585 if (HistoRateName.Contains(
"tpc_angular_dose")) m_input_LB_TPC_angular_dose[k].push_back(rate);
592 for (
const TString& HistoDoseName : m_inputDoseHistoNamesVrs) {
594 if (HistoDoseName.Contains(
"csi")) imax = 18;
595 if (HistoDoseName.Contains(
"bgo")) imax = 8;
596 if (HistoDoseName.Contains(
"pin")) {
598 volume = 0.265 * 0.265 * m_input_PIN_width;
600 mass = rho * volume * 1e-3;
602 if (HistoDoseName.Contains(
"dia")) {
604 volume = 0.4 * 0.4 * 0.05;
606 mass = rho * volume * 1e-3;
608 if (HistoDoseName.Contains(
"dosi")) {
610 volume = 0.265 * 0.265 * 0.01;
612 mass = rho * volume * 1e-3;
614 if (HistoDoseName.Contains(
"tpc")) {
616 volume = 10.8537 * 2.0 * 1.68;
618 mass = rho * volume * 1e-3;
620 for (
int i = 0; i < imax; i++) {
623 if (HistoDoseName.Contains(
"csi")) {
624 he = (TH2F*)fh[iter]->Get(TString::Format(
"csi_rs_dedep_%d_%d", i, m_DayBin));
626 he = (TH2F*)fh[iter]->Get(TString::Format(
"%s_%d", HistoDoseName.Data(), i));
630 for (
int k = 0; k < he->GetNbinsY(); k++) {
632 for (
int j = 0; j < he->GetNbinsX(); j++) {
633 double co = he->GetBinContent(j + 1, k + 1);
634 double va = he->GetXaxis()->GetBinCenter(j + 1);
635 double esumbin = va * co;
637 if (fileName.Contains(
"Coulomb")) {
638 if (fileName.Contains(
"HER")) esumbin *= m_input_Z_scaling[0];
639 if (fileName.Contains(
"LER")) esumbin *= m_input_Z_scaling[1];
641 if (fileName.Contains(
"Brems")) {
642 if (fileName.Contains(
"HER")) esumbin *= m_input_Z_scaling[2];
643 if (fileName.Contains(
"LER")) esumbin *= m_input_Z_scaling[3];
647 if (HistoDoseName.Contains(
"csi_energy")) {
648 if (fileName.Contains(
"HER")) {
649 if (fileName.Contains(
"Coulomb")) m_input_HC_CSI_dose_binE[k].push_back(esumbin / m_input_Time_eqv * 1e-3);
650 if (fileName.Contains(
"Brems")) m_input_HB_CSI_dose_binE[k].push_back(esumbin / m_input_Time_eqv * 1e-3);
652 if (fileName.Contains(
"LER")) {
653 if (fileName.Contains(
"Coulomb")) m_input_LC_CSI_dose_binE[k].push_back(esumbin / m_input_Time_eqv * 1e-3);
654 if (fileName.Contains(
"Brems")) m_input_LB_CSI_dose_binE[k].push_back(esumbin / m_input_Time_eqv * 1e-3);
659 if (fileName.Contains(
"Coulomb_HER")) {
660 if (HistoDoseName.Contains(
"csi")
661 && HistoDoseName.Contains(
"edep")) m_input_HC_CSI_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
662 if (HistoDoseName.Contains(
"bgo")) m_input_HC_BGO_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
663 if (HistoDoseName.Contains(
"pin")) m_input_HC_PIN_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
664 if (HistoDoseName.Contains(
"dosi")) m_input_HC_DOSI[k].push_back(esum / m_input_Time_eqv / mass / RadConv);
665 if (HistoDoseName.Contains(
"tpc_dose")) m_input_HC_TPC_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv *
669 if (HistoDoseName.Contains(
"dia")) m_input_HC_DIA_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
671 if (fileName.Contains(
"Coulomb_LER")) {
672 if (HistoDoseName.Contains(
"csi")
673 && HistoDoseName.Contains(
"edep")) m_input_LC_CSI_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
674 if (HistoDoseName.Contains(
"bgo")) m_input_LC_BGO_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
675 if (HistoDoseName.Contains(
"pin")) m_input_LC_PIN_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
676 if (HistoDoseName.Contains(
"dosi")) m_input_LC_DOSI[k].push_back(esum / m_input_Time_eqv / mass / RadConv);
677 if (HistoDoseName.Contains(
"tpc_dose")) m_input_LC_TPC_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv *
681 if (HistoDoseName.Contains(
"dia")) m_input_LC_DIA_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
683 if (fileName.Contains(
"Brems_HER")) {
684 if (HistoDoseName.Contains(
"csi")
685 && HistoDoseName.Contains(
"edep")) m_input_HB_CSI_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
686 if (HistoDoseName.Contains(
"bgo")) m_input_HB_BGO_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
687 if (HistoDoseName.Contains(
"pin")) m_input_HB_PIN_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
688 if (HistoDoseName.Contains(
"dosi")) m_input_HB_DOSI[k].push_back(esum / m_input_Time_eqv / mass / RadConv);
689 if (HistoDoseName.Contains(
"tpc_dose")) m_input_HB_TPC_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv *
693 if (HistoDoseName.Contains(
"dia")) m_input_HB_DIA_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
695 if (fileName.Contains(
"Brems_LER")) {
696 if (HistoDoseName.Contains(
"csi")
697 && HistoDoseName.Contains(
"edep")) m_input_LB_CSI_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
698 if (HistoDoseName.Contains(
"bgo")) m_input_LB_BGO_dose[k].push_back(esum / m_input_Time_eqv * 1e-3);
699 if (HistoDoseName.Contains(
"pin")) m_input_LB_PIN_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
700 if (HistoDoseName.Contains(
"dosi")) m_input_LB_DOSI[k].push_back(esum / m_input_Time_eqv / mass / RadConv);
701 if (HistoDoseName.Contains(
"tpc_dose")) m_input_LB_TPC_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv *
705 if (HistoDoseName.Contains(
"dia")) m_input_LB_DIA_dose[k].push_back(esum / m_input_Time_eqv / mass / RadConv * 1e-3);
717 m_numEntries = m_tree->GetEntries();
718 cout <<
"m_numEntries " << m_numEntries << endl;
724 evtMetaData.registerInDataStore();
726 m_file =
new TFile(m_outputFileName.c_str(),
"RECREATE");
727 m_treeTruth =
new TTree(
"truth",
"Truth table (simulation)");
729 m_treeBEAST =
new TTree(
"tout",
"BEAST data tree (simulation)");
731 m_treeBEAST->Branch(
"ts", &(m_beast.ts));
732 m_treeBEAST->Branch(
"event", &(m_beast.event));
733 m_treeBEAST->Branch(
"run", &(m_beast.run));
734 m_treeBEAST->Branch(
"subrun", &(m_beast.subrun));
736 m_treeBEAST->Branch(
"SKB_HER_injectionFlag", &(m_beast.SKB_HER_injectionFlag));
737 m_treeBEAST->Branch(
"SKB_LER_injectionFlag", &(m_beast.SKB_LER_injectionFlag));
738 m_treeBEAST->Branch(
"SKB_HER_injectionFlag_safe", &(m_beast.SKB_HER_injectionFlag_safe));
739 m_treeBEAST->Branch(
"SKB_LER_injectionFlag_safe", &(m_beast.SKB_LER_injectionFlag_safe));
740 m_treeBEAST->Branch(
"SKB_HER_abortFlag", &(m_beast.SKB_HER_abortFlag));
741 m_treeBEAST->Branch(
"SKB_LER_abortFlag", &(m_beast.SKB_LER_abortFlag));
742 m_treeBEAST->Branch(
"SKB_HER_abortFlag_safe", &(m_beast.SKB_HER_abortFlag_safe));
743 m_treeBEAST->Branch(
"SKB_LER_abortFlag_safe", &(m_beast.SKB_LER_abortFlag_safe));
744 m_treeBEAST->Branch(
"SKB_Status", &(m_beast.SKB_Status));
745 m_treeBEAST->Branch(
"SKB_HER_injectionRate", &(m_beast.SKB_HER_injectionRate));
746 m_treeBEAST->Branch(
"SKB_LER_injectionRate", &(m_beast.SKB_LER_injectionRate));
747 m_treeBEAST->Branch(
"SKB_HER_lifetime", &(m_beast.SKB_HER_lifetime));
748 m_treeBEAST->Branch(
"SKB_LER_lifetime", &(m_beast.SKB_LER_lifetime));
749 m_treeBEAST->Branch(
"SKB_LER_current", &(m_beast.SKB_LER_current));
750 m_treeBEAST->Branch(
"SKB_HER_current", &(m_beast.SKB_HER_current));
751 m_treeBEAST->Branch(
"SKB_LER_injectionEfficiency", &(m_beast.SKB_LER_injectionEfficiency));
752 m_treeBEAST->Branch(
"SKB_HER_injectionEfficiency", &(m_beast.SKB_HER_injectionEfficiency));
753 m_treeBEAST->Branch(
"SKB_beamLoss_ionChambers_mean", &(m_beast.SKB_beamLoss_ionChambers_mean));
754 m_treeBEAST->Branch(
"SKB_beamLoss_PINdiodes_mean", &(m_beast.SKB_beamLoss_PINdiodes_mean));
755 m_treeBEAST->Branch(
"SKB_beamLoss_nearCollimators", &(m_beast.SKB_beamLoss_nearCollimators));
756 m_treeBEAST->Branch(
"SKB_beamLoss_aroundMasks", &(m_beast.SKB_beamLoss_aroundMasks));
757 m_treeBEAST->Branch(
"SKB_LER_injectionCharge", &(m_beast.SKB_LER_injectionCharge));
758 m_treeBEAST->Branch(
"SKB_HER_injectionCharge", &(m_beast.SKB_HER_injectionCharge));
759 m_treeBEAST->Branch(
"SKB_LER_injectionRepetitionRate", &(m_beast.SKB_LER_injectionRepetitionRate));
760 m_treeBEAST->Branch(
"SKB_HER_injectionRepetitionRate", &(m_beast.SKB_HER_injectionRepetitionRate));
761 m_treeBEAST->Branch(
"SKB_LER_injectionNumberOfBunches", &(m_beast.SKB_LER_injectionNumberOfBunches));
762 m_treeBEAST->Branch(
"SKB_HER_injectionNumberOfBunches", &(m_beast.SKB_HER_injectionNumberOfBunches));
763 m_treeBEAST->Branch(
"SKB_LER_pressures", &(m_beast.SKB_LER_pressures));
764 m_treeBEAST->Branch(
"SKB_HER_pressures", &(m_beast.SKB_HER_pressures));
765 m_treeBEAST->Branch(
"SKB_LER_pressure_average", &(m_beast.SKB_LER_pressure_average));
766 m_treeBEAST->Branch(
"SKB_HER_pressure_average", &(m_beast.SKB_HER_pressure_average));
767 m_treeBEAST->Branch(
"SKB_LER_pressures_corrected", &(m_beast.SKB_LER_pressures_corrected));
768 m_treeBEAST->Branch(
"SKB_HER_pressures_corrected", &(m_beast.SKB_HER_pressures_corrected));
769 m_treeBEAST->Branch(
"SKB_LER_pressure_average_corrected", &(m_beast.SKB_LER_pressure_average_corrected));
770 m_treeBEAST->Branch(
"SKB_HER_pressure_average_corrected", &(m_beast.SKB_HER_pressure_average_corrected));
771 m_treeBEAST->Branch(
"SKB_HER_collimatorPositions_mm", &(m_beast.SKB_HER_collimatorPositions_mm));
772 m_treeBEAST->Branch(
"SKB_HER_collimatorPositions_DMM", &(m_beast.SKB_HER_collimatorPositions_DMM));
773 m_treeBEAST->Branch(
"SKB_HER_collimatorPositions_inX", &(m_beast.SKB_HER_collimatorPositions_inX));
774 m_treeBEAST->Branch(
"SKB_HER_collimatorPositions_inY", &(m_beast.SKB_HER_collimatorPositions_inY));
775 m_treeBEAST->Branch(
"SKB_HER_collimatorPositions_fromBeam", &(m_beast.SKB_HER_collimatorPositions_fromBeam));
776 m_treeBEAST->Branch(
"SKB_LER_collimatorPositions_mm", &(m_beast.SKB_LER_collimatorPositions_mm));
777 m_treeBEAST->Branch(
"SKB_LER_collimatorPositions_X", &(m_beast.SKB_LER_collimatorPositions_X));
778 m_treeBEAST->Branch(
"SKB_LER_collimatorPositions_Y", &(m_beast.SKB_LER_collimatorPositions_Y));
779 m_treeBEAST->Branch(
"SKB_LER_collimatorPositions_fromBeam", &(m_beast.SKB_LER_collimatorPositions_fromBeam));
780 m_treeBEAST->Branch(
"SKB_HER_beamSize_xray_X", &(m_beast.SKB_HER_beamSize_xray_X));
781 m_treeBEAST->Branch(
"SKB_HER_beamSize_xray_Y", &(m_beast.SKB_HER_beamSize_xray_Y));
782 m_treeBEAST->Branch(
"SKB_HER_correctedBeamSize_xray_Y", &(m_beast.SKB_HER_correctedBeamSize_xray_Y));
783 m_treeBEAST->Branch(
"SKB_LER_beamSize_xray_X", &(m_beast.SKB_LER_beamSize_xray_X));
784 m_treeBEAST->Branch(
"SKB_LER_beamSize_xray_Y", &(m_beast.SKB_LER_beamSize_xray_Y));
785 m_treeBEAST->Branch(
"SKB_LER_correctedBeamSize_xray_Y", &(m_beast.SKB_LER_correctedBeamSize_xray_Y));
786 m_treeBEAST->Branch(
"SKB_LER_beamSize_SR_X", &(m_beast.SKB_LER_beamSize_SR_X));
787 m_treeBEAST->Branch(
"SKB_LER_beamSize_SR_Y", &(m_beast.SKB_LER_beamSize_SR_Y));
788 m_treeBEAST->Branch(
"SKB_HER_beamSize_SR_X", &(m_beast.SKB_HER_beamSize_SR_X));
789 m_treeBEAST->Branch(
"SKB_HER_beamSize_SR_Y", &(m_beast.SKB_HER_beamSize_SR_Y));
790 m_treeBEAST->Branch(
"SKB_HER_integratedCurrent", &(m_beast.SKB_HER_integratedCurrent));
791 m_treeBEAST->Branch(
"SKB_LER_integratedCurrent", &(m_beast.SKB_LER_integratedCurrent));
792 m_treeBEAST->Branch(
"SKB_LER_partialPressures_D06", &(m_beast.SKB_LER_partialPressures_D06));
793 m_treeBEAST->Branch(
"SKB_LER_partialPressures_D02", &(m_beast.SKB_LER_partialPressures_D02));
794 m_treeBEAST->Branch(
"SKB_LER_pressures_local", &(m_beast.SKB_LER_pressures_local));
795 m_treeBEAST->Branch(
"SKB_HER_pressures_local", &(m_beast.SKB_HER_pressures_local));
796 m_treeBEAST->Branch(
"SKB_LER_pressures_local_corrected", &(m_beast.SKB_LER_pressures_local_corrected));
797 m_treeBEAST->Branch(
"SKB_HER_pressures_local_corrected", &(m_beast.SKB_HER_pressures_local_corrected));
798 m_treeBEAST->Branch(
"SKB_LER_Zeff_D02", &(m_beast.SKB_LER_Zeff_D02));
799 m_treeBEAST->Branch(
"SKB_LER_Zeff_D06", &(m_beast.SKB_LER_Zeff_D06));
801 m_treeBEAST->Branch(
"CSI_data_sumE", &(m_beast.CSI_data_sumE));
802 m_treeBEAST->Branch(
"BGO_data_dose", &(m_beast.BGO_data_dose));
803 m_treeBEAST->Branch(
"PIN_data_dose", &(m_beast.PIN_data_dose));
804 m_treeBEAST->Branch(
"DIA_data_dose", &(m_beast.DIA_data_dose));
806 m_treeBEAST->Branch(
"HE3_data_rate", &(m_beast.HE3_data_rate));
807 m_treeBEAST->Branch(
"CSI_data_rate", &(m_beast.CSI_data_rate));
808 m_treeBEAST->Branch(
"QCSS_data_rate", &(m_beast.QCSS_data_rate));
809 m_treeBEAST->Branch(
"CLAWS_data_rate", &(m_beast.CLAWS_data_rate));
811 m_treeBEAST->Branch(
"CSI_data_Ebin", &(m_beast.CSI_data_Ebin));
813 m_treeBEAST->Branch(
"PIN_dose", &(m_beast.PIN_dose));
814 m_treeBEAST->Branch(
"BGO_energy", &(m_beast.BGO_energy));
815 m_treeBEAST->Branch(
"HE3_rate", &(m_beast.HE3_rate));
820 m_treeBEAST->Branch(
"CSI_sumE", &(m_beast.CSI_sumE));
821 m_treeBEAST->Branch(
"CSI_Ebin", &(m_beast.CSI_Ebin));
822 m_treeBEAST->Branch(
"CSI_hitRate", &(m_beast.CSI_hitRate));
823 m_treeBEAST->Branch(
"DIA_dose", &(m_beast.DIA_dose));
824 m_treeBEAST->Branch(
"CLAWS_rate", &(m_beast.CLAWS_rate));
825 m_treeBEAST->Branch(
"QCSS_rate", &(m_beast.QCSS_rate));
827 m_treeBEAST->Branch(
"DOSI_av", &(m_beast.DOSI_av));
828 m_treeBEAST->Branch(
"DOSI", &(m_beast.DOSI));
829 m_treeBEAST->Branch(
"PIN_dose_av", &(m_beast.PIN_dose_av));
830 m_treeBEAST->Branch(
"BGO_energy_av", &(m_beast.BGO_energy_av));
831 m_treeBEAST->Branch(
"HE3_rate_av", &(m_beast.HE3_rate_av));
832 m_treeBEAST->Branch(
"TPC_rate_av", &(m_beast.TPC_rate_av),
"TPC_rate_av[2][5]/F");
834 m_treeBEAST->Branch(
"TPC_dose_av", &(m_beast.TPC_dose_av));
835 m_treeBEAST->Branch(
"TPC_angular_rate_av", &(m_beast.TPC_angular_rate_av),
"TPC_angular_rate_av[2][9][18]/F");
836 m_treeBEAST->Branch(
"TPC_angular_dose_av", &(m_beast.TPC_angular_dose_av),
"TPC_angular_dose_av[2][9][18]/F");
837 m_treeBEAST->Branch(
"CSI_sumE_av", &(m_beast.CSI_sumE_av));
838 m_treeBEAST->Branch(
"CSI_Ebin_av", &(m_beast.CSI_Ebin_av));
839 m_treeBEAST->Branch(
"CSI_hitRate_av", &(m_beast.CSI_hitRate_av));
840 m_treeBEAST->Branch(
"DIA_dose_av", &(m_beast.DIA_dose_av));
841 m_treeBEAST->Branch(
"CLAWS_rate_av", &(m_beast.CLAWS_rate_av));
842 m_treeBEAST->Branch(
"QCSS_rate_av", &(m_beast.QCSS_rate_av));
844 m_treeBEAST->Branch(
"SAD_HER_lifetime", &(m_beast.SAD_HER_lifetime));
845 m_treeBEAST->Branch(
"SAD_LER_lifetime", &(m_beast.SAD_LER_lifetime));
846 m_treeBEAST->Branch(
"SAD_HER_lifetime_av", &(m_beast.SAD_HER_lifetime_av));
847 m_treeBEAST->Branch(
"SAD_LER_lifetime_av", &(m_beast.SAD_LER_lifetime_av));
848 m_treeBEAST->Branch(
"SAD_HER_RLR", &(m_beast.SAD_HER_RLR));
849 m_treeBEAST->Branch(
"SAD_LER_RLR", &(m_beast.SAD_LER_RLR));
850 m_treeBEAST->Branch(
"SKB_HER_RLR", &(m_beast.SKB_HER_RLR));
851 m_treeBEAST->Branch(
"SKB_LER_RLR", &(m_beast.SKB_LER_RLR));
852 m_treeBEAST->Branch(
"SAD_HER_RLR_av", &(m_beast.SAD_HER_RLR_av));
853 m_treeBEAST->Branch(
"SAD_LER_RLR_av", &(m_beast.SAD_LER_RLR_av));
855 m_treeBEAST->Branch(
"mc_reweight_LERT", &(m_beast.mc_reweight_LERT));
856 m_treeBEAST->Branch(
"mc_reweight_LERC", &(m_beast.mc_reweight_LERC));
857 m_treeBEAST->Branch(
"mc_reweight_LERB", &(m_beast.mc_reweight_LERB));
858 m_treeBEAST->Branch(
"mc_reweight_HERT", &(m_beast.mc_reweight_HERT));
859 m_treeBEAST->Branch(
"mc_reweight_HERC", &(m_beast.mc_reweight_HERC));
860 m_treeBEAST->Branch(
"mc_reweight_HERB", &(m_beast.mc_reweight_HERB));
876 m_treeTruth->Branch(
"SAD_I_HER", &(m_input_I_HER));
877 m_treeTruth->Branch(
"SAD_I_LER", &(m_input_I_LER));
878 m_treeTruth->Branch(
"SAD_P_HER", &(m_input_P_HER));
879 m_treeTruth->Branch(
"SAD_P_LER", &(m_input_P_LER));
880 m_treeTruth->Branch(
"SAD_sigma_x_HER", &(m_input_sigma_x_HER));
881 m_treeTruth->Branch(
"SAD_sigma_x_LER", &(m_input_sigma_x_LER));
882 m_treeTruth->Branch(
"SAD_sigma_y_HER", &(m_input_sigma_y_HER));
883 m_treeTruth->Branch(
"SAD_sigma_y_LER", &(m_input_sigma_y_LER));
884 m_treeTruth->Branch(
"SAD_bunchNb_HER", &(m_input_bunchNb_HER));
885 m_treeTruth->Branch(
"SAD_bunchNb_LER", &(m_input_bunchNb_LER));
887 for (
int i = 0; i < 12; i ++) {
888 m_treeTruth->Branch(TString::Format(
"MC_LC_DIA_dose_%d", i), &(m_input_LC_DIA_dose[i]));
889 m_treeTruth->Branch(TString::Format(
"MC_HC_DIA_dose_%d", i), &(m_input_HC_DIA_dose[i]));
890 m_treeTruth->Branch(TString::Format(
"MC_LB_DIA_dose_%d", i), &(m_input_LB_DIA_dose[i]));
891 m_treeTruth->Branch(TString::Format(
"MC_HB_DIA_dose_%d", i), &(m_input_HB_DIA_dose[i]));
893 m_treeTruth->Branch(TString::Format(
"MC_LC_PIN_dose_%d", i), &(m_input_LC_PIN_dose[i]));
894 m_treeTruth->Branch(TString::Format(
"MC_HC_PIN_dose_%d", i), &(m_input_HC_PIN_dose[i]));
895 m_treeTruth->Branch(TString::Format(
"MC_LB_PIN_dose_%d", i), &(m_input_LB_PIN_dose[i]));
896 m_treeTruth->Branch(TString::Format(
"MC_HB_PIN_dose_%d", i), &(m_input_HB_PIN_dose[i]));
898 m_treeTruth->Branch(TString::Format(
"MC_LC_BGO_dose_%d", i), &(m_input_LC_BGO_dose[i]));
899 m_treeTruth->Branch(TString::Format(
"MC_HC_BGO_dose_%d", i), &(m_input_HC_BGO_dose[i]));
900 m_treeTruth->Branch(TString::Format(
"MC_LB_BGO_dose_%d", i), &(m_input_LB_BGO_dose[i]));
901 m_treeTruth->Branch(TString::Format(
"MC_HB_BGO_dose_%d", i), &(m_input_HB_BGO_dose[i]));
903 m_treeTruth->Branch(TString::Format(
"MC_LC_HE3_rate_%d", i), &(m_input_LC_HE3_rate[i]));
904 m_treeTruth->Branch(TString::Format(
"MC_HC_HE3_rate_%d", i), &(m_input_HC_HE3_rate[i]));
905 m_treeTruth->Branch(TString::Format(
"MC_LB_HE3_rate_%d", i), &(m_input_LB_HE3_rate[i]));
906 m_treeTruth->Branch(TString::Format(
"MC_HB_HE3_rate_%d", i), &(m_input_HB_HE3_rate[i]));
928 m_treeTruth->Branch(TString::Format(
"MC_LC_CSI_rate_%d", i), &(m_input_LC_CSI_rate[i]));
929 m_treeTruth->Branch(TString::Format(
"MC_HC_CSI_rate_%d", i), &(m_input_HC_CSI_rate[i]));
930 m_treeTruth->Branch(TString::Format(
"MC_LB_CSI_rate_%d", i), &(m_input_LB_CSI_rate[i]));
931 m_treeTruth->Branch(TString::Format(
"MC_HB_CSI_rate_%d", i), &(m_input_HB_CSI_rate[i]));
933 m_treeTruth->Branch(TString::Format(
"MC_LC_CSI_dose_%d", i), &(m_input_LC_CSI_dose[i]));
934 m_treeTruth->Branch(TString::Format(
"MC_HC_CSI_dose_%d", i), &(m_input_HC_CSI_dose[i]));
935 m_treeTruth->Branch(TString::Format(
"MC_LB_CSI_dose_%d", i), &(m_input_LB_CSI_dose[i]));
936 m_treeTruth->Branch(TString::Format(
"MC_HB_CSI_dose_%d", i), &(m_input_HB_CSI_dose[i]));
938 m_treeTruth->Branch(TString::Format(
"MC_LC_CLAWS_rate_%d", i), &(m_input_LC_CLAWS_rate[i]));
939 m_treeTruth->Branch(TString::Format(
"MC_HC_CLAWS_rate_%d", i), &(m_input_HC_CLAWS_rate[i]));
940 m_treeTruth->Branch(TString::Format(
"MC_LB_CLAWS_rate_%d", i), &(m_input_LB_CLAWS_rate[i]));
941 m_treeTruth->Branch(TString::Format(
"MC_HB_CLAWS_rate_%d", i), &(m_input_HB_CLAWS_rate[i]));
943 m_treeTruth->Branch(TString::Format(
"MC_LC_QCSS_rate_%d", i), &(m_input_LC_QCSS_rate[i]));
944 m_treeTruth->Branch(TString::Format(
"MC_HC_QCSS_rate_%d", i), &(m_input_HC_QCSS_rate[i]));
945 m_treeTruth->Branch(TString::Format(
"MC_LB_QCSS_rate_%d", i), &(m_input_LB_QCSS_rate[i]));
946 m_treeTruth->Branch(TString::Format(
"MC_HB_QCSS_rate_%d", i), &(m_input_HB_QCSS_rate[i]));
949 m_treeTruth->Branch(
"MC_LT_DIA_dose", &(m_input_LT_DIA_dose));
950 m_treeTruth->Branch(
"MC_HT_DIA_dose", &(m_input_HT_DIA_dose));
951 m_treeTruth->Branch(
"MC_LC_DIA_dose_av", &(m_input_LC_DIA_dose_av));
952 m_treeTruth->Branch(
"MC_HC_DIA_dose_av", &(m_input_HC_DIA_dose_av));
953 m_treeTruth->Branch(
"MC_LB_DIA_dose_av", &(m_input_LB_DIA_dose_av));
954 m_treeTruth->Branch(
"MC_HB_DIA_dose_av", &(m_input_HB_DIA_dose_av));
956 m_treeTruth->Branch(
"MC_LT_PIN_dose", &(m_input_LT_PIN_dose));
957 m_treeTruth->Branch(
"MC_HT_PIN_dose", &(m_input_HT_PIN_dose));
958 m_treeTruth->Branch(
"MC_LC_PIN_dose_av", &(m_input_LC_PIN_dose_av));
959 m_treeTruth->Branch(
"MC_HC_PIN_dose_av", &(m_input_HC_PIN_dose_av));
960 m_treeTruth->Branch(
"MC_LB_PIN_dose_av", &(m_input_LB_PIN_dose_av));
961 m_treeTruth->Branch(
"MC_HB_PIN_dose_av", &(m_input_HB_PIN_dose_av));
963 m_treeTruth->Branch(
"MC_LT_BGO_dose", &(m_input_LT_BGO_dose));
964 m_treeTruth->Branch(
"MC_HT_BGO_dose", &(m_input_HT_BGO_dose));
965 m_treeTruth->Branch(
"MC_LC_BGO_dose_av", &(m_input_LC_BGO_dose_av));
966 m_treeTruth->Branch(
"MC_HC_BGO_dose_av", &(m_input_HC_BGO_dose_av));
967 m_treeTruth->Branch(
"MC_LB_BGO_dose_av", &(m_input_LB_BGO_dose_av));
968 m_treeTruth->Branch(
"MC_HB_BGO_dose_av", &(m_input_HB_BGO_dose_av));
970 m_treeTruth->Branch(
"MC_LT_HE3_rate", &(m_input_LT_HE3_rate));
971 m_treeTruth->Branch(
"MC_HT_HE3_rate", &(m_input_HT_HE3_rate));
972 m_treeTruth->Branch(
"MC_LC_HE3_rate_av", &(m_input_LC_HE3_rate_av));
973 m_treeTruth->Branch(
"MC_HC_HE3_rate_av", &(m_input_HC_HE3_rate_av));
974 m_treeTruth->Branch(
"MC_LB_HE3_rate_av", &(m_input_LB_HE3_rate_av));
975 m_treeTruth->Branch(
"MC_HB_HE3_rate_av", &(m_input_HB_HE3_rate_av));
979 m_treeTruth->Branch(
"MC_LC_TPC_rate_av", &(m_input_LC_TPC_rate_av));
980 m_treeTruth->Branch(
"MC_HC_TPC_rate_av", &(m_input_HC_TPC_rate_av));
981 m_treeTruth->Branch(
"MC_LB_TPC_rate_av", &(m_input_LB_TPC_rate_av));
982 m_treeTruth->Branch(
"MC_HB_TPC_rate_av", &(m_input_HB_TPC_rate_av));
986 m_treeTruth->Branch(
"MC_LC_TPC_dose_av", &(m_input_LC_TPC_dose_av));
987 m_treeTruth->Branch(
"MC_HC_TPC_dose_av", &(m_input_HC_TPC_dose_av));
988 m_treeTruth->Branch(
"MC_LB_TPC_dose_av", &(m_input_LB_TPC_dose_av));
989 m_treeTruth->Branch(
"MC_HB_TPC_dose_av", &(m_input_HB_TPC_dose_av));
993 m_treeTruth->Branch(
"MC_LC_TPC_angular_rate_av", &(m_input_LC_TPC_angular_rate_av));
994 m_treeTruth->Branch(
"MC_HC_TPC_angular_rate_av", &(m_input_HC_TPC_angular_rate_av));
995 m_treeTruth->Branch(
"MC_LB_TPC_angular_rate_av", &(m_input_LB_TPC_angular_rate_av));
996 m_treeTruth->Branch(
"MC_HB_TPC_angular_rate_av", &(m_input_HB_TPC_angular_rate_av));
1000 m_treeTruth->Branch(
"MC_LC_TPC_angular_dose_av", &(m_input_LC_TPC_angular_dose_av));
1001 m_treeTruth->Branch(
"MC_HC_TPC_angular_dose_av", &(m_input_HC_TPC_angular_dose_av));
1002 m_treeTruth->Branch(
"MC_LB_TPC_angular_dose_av", &(m_input_LB_TPC_angular_dose_av));
1003 m_treeTruth->Branch(
"MC_HB_TPC_angular_dose_av", &(m_input_HB_TPC_angular_dose_av));
1005 m_treeTruth->Branch(
"MC_LT_CSI_rate", &(m_input_LT_CSI_rate));
1006 m_treeTruth->Branch(
"MC_HT_CSI_rate", &(m_input_HT_CSI_rate));
1007 m_treeTruth->Branch(
"MC_LC_CSI_rate_av", &(m_input_LC_CSI_rate_av));
1008 m_treeTruth->Branch(
"MC_HC_CSI_rate_av", &(m_input_HC_CSI_rate_av));
1009 m_treeTruth->Branch(
"MC_LB_CSI_rate_av", &(m_input_LB_CSI_rate_av));
1010 m_treeTruth->Branch(
"MC_HB_CSI_rate_av", &(m_input_HB_CSI_rate_av));
1012 m_treeTruth->Branch(
"MC_LT_CSI_dose", &(m_input_LT_CSI_dose));
1013 m_treeTruth->Branch(
"MC_HT_CSI_dose", &(m_input_HT_CSI_dose));
1014 m_treeTruth->Branch(
"MC_LC_CSI_dose_av", &(m_input_LC_CSI_dose_av));
1015 m_treeTruth->Branch(
"MC_HC_CSI_dose_av", &(m_input_HC_CSI_dose_av));
1016 m_treeTruth->Branch(
"MC_LB_CSI_dose_av", &(m_input_LB_CSI_dose_av));
1017 m_treeTruth->Branch(
"MC_HB_CSI_dose_av", &(m_input_HB_CSI_dose_av));
1019 m_treeTruth->Branch(
"MC_LT_CLAWS_rate", &(m_input_LT_CLAWS_rate));
1020 m_treeTruth->Branch(
"MC_HT_CLAWS_rate", &(m_input_HT_CLAWS_rate));
1021 m_treeTruth->Branch(
"MC_LC_CLAWS_rate_av", &(m_input_LC_CLAWS_rate_av));
1022 m_treeTruth->Branch(
"MC_HC_CLAWS_rate_av", &(m_input_HC_CLAWS_rate_av));
1023 m_treeTruth->Branch(
"MC_LB_CLAWS_rate_av", &(m_input_LB_CLAWS_rate_av));
1024 m_treeTruth->Branch(
"MC_HB_CLAWS_rate_av", &(m_input_HB_CLAWS_rate_av));
1026 m_treeTruth->Branch(
"MC_LT_QCSS_rate", &(m_input_LT_QCSS_rate));
1027 m_treeTruth->Branch(
"MC_HT_QCSS_rate", &(m_input_HT_QCSS_rate));
1028 m_treeTruth->Branch(
"MC_LC_QCSS_rate_av", &(m_input_LC_QCSS_rate_av));
1029 m_treeTruth->Branch(
"MC_HC_QCSS_rate_av", &(m_input_HC_QCSS_rate_av));
1030 m_treeTruth->Branch(
"MC_LB_QCSS_rate_av", &(m_input_LB_QCSS_rate_av));
1031 m_treeTruth->Branch(
"MC_HB_QCSS_rate_av", &(m_input_HB_QCSS_rate_av));
1033 m_treeTruth->Fill();
1037 void NtuplePhase1_v6Module::beginRun()
1042 void NtuplePhase1_v6Module::event()
1048 evtMetaData.create();
1050 if (m_eventCount == m_numEvents) {
1051 evtMetaData->setEndOfData();
1055 m_tree->GetEntry(m_eventCount);
1057 double Zeff_LER = 0;
1058 if (m_beast.SKB_LER_Zeff_D02 != 0 && m_beast.SKB_LER_Zeff_D02->size() > 0) Zeff_LER = m_beast.SKB_LER_Zeff_D02->at(0);
1062 if (Zeff_LER == 0) {
1066 }
else if (Zeff_LER > 0 && Zeff_LER < 40) {
1067 Zeff_LC = fctRate_LC->Eval(Zeff_LER) / fctRate_LC->Eval(7) / m_input_Z_scaling[1];
1068 Zeff_LB = fctRate_LB->Eval(Zeff_LER) / fctRate_LB->Eval(7) / m_input_Z_scaling[3];
1071 if (m_input_Z[1] == 2.7 && m_input_Z[3] == 2.7) {
1075 double Zeff_HC = m_input_Z_scaling[0];
1076 double Zeff_HB = m_input_Z_scaling[2];
1079 if (m_beast.SKB_HER_current != 0 && m_beast.SKB_HER_current->size() > 0) I_HER = m_beast.SKB_HER_current->at(0);
1080 if (m_input_I_HER[1] > 0) I_HER += gRandom->Gaus(0, m_input_I_HER[1]);
1082 if (m_beast.SKB_LER_current != 0 && m_beast.SKB_LER_current->size() > 0) I_LER = m_beast.SKB_LER_current->at(0);
1083 if (m_input_I_LER[1] > 0) I_LER += gRandom->Gaus(0, m_input_I_LER[1]);
1085 if (m_beast.SKB_HER_pressure_average != 0
1086 && m_beast.SKB_HER_pressure_average->size() > 0) P_HER = m_beast.SKB_HER_pressure_average->at(
1087 0) * 0.00750062 * 1e9 * m_input_GasCorrection[0];
1088 if (m_input_P_HER[1] > 0) P_HER += gRandom->Gaus(0, m_input_P_HER[1]);
1090 if (m_beast.SKB_LER_pressure_average != 0
1091 && m_beast.SKB_LER_pressure_average->size() > 0) P_LER = m_beast.SKB_LER_pressure_average->at(
1092 0) * 0.00750062 * 1e9 * m_input_GasCorrection[1];
1093 if (m_input_P_LER[1] > 0) P_LER += gRandom->Gaus(0, m_input_P_LER[1]);
1094 double P_corrected_HER = 0;
1095 if (m_beast.SKB_HER_pressure_average_corrected != 0
1096 && m_beast.SKB_HER_pressure_average_corrected->size() > 0) P_corrected_HER = m_beast.SKB_HER_pressure_average_corrected->at(
1097 0) * 0.00750062 * 1e9;
1098 if (m_input_P_HER[1] > 0) P_corrected_HER += gRandom->Gaus(0, m_input_P_HER[1]);
1099 double P_corrected_LER = 0;
1100 if (m_beast.SKB_LER_pressure_average_corrected != 0
1101 && m_beast.SKB_LER_pressure_average_corrected->size() > 0) P_corrected_LER = m_beast.SKB_LER_pressure_average_corrected->at(
1102 0) * 0.00750062 * 1e9;
1103 if (m_input_P_LER[1] > 0) P_corrected_LER += gRandom->Gaus(0, m_input_P_LER[1]);
1105 double sigma_y_HER = 0;
1106 double sigma_x_HER = 0;
1107 if (m_beast.SKB_HER_correctedBeamSize_xray_Y != 0
1108 && m_beast.SKB_HER_beamSize_xray_Y != 0
1109 && m_beast.SKB_HER_correctedBeamSize_xray_Y->size() > 0) {
1110 sigma_y_HER = m_beast.SKB_HER_correctedBeamSize_xray_Y->at(0);
1112 if (m_beast.SKB_HER_beamSize_SR_X != 0 && m_beast.SKB_HER_beamSize_SR_Y
1113 && m_beast.SKB_HER_beamSize_SR_X->size() > 0
1114 && m_beast.SKB_HER_beamSize_SR_Y->size() > 0)
1115 sigma_x_HER = m_beast.SKB_HER_correctedBeamSize_xray_Y->at(0) * m_beast.SKB_HER_beamSize_SR_X->at(
1116 0) / m_beast.SKB_HER_beamSize_SR_Y->at(0);
1123 if (m_input_sigma_x_HER[1] > 0) sigma_x_HER += gRandom->Gaus(0, m_input_sigma_x_HER[1]);
1124 if (m_input_sigma_y_HER[1] > 0) sigma_y_HER += gRandom->Gaus(0, m_input_sigma_y_HER[1]);
1125 double sigma_y_LER = 0;
1126 double sigma_x_LER = 0;
1127 if (m_beast.SKB_LER_correctedBeamSize_xray_Y != 0
1128 && m_beast.SKB_LER_beamSize_xray_Y != 0
1129 && m_beast.SKB_LER_correctedBeamSize_xray_Y->size() > 0) {
1130 sigma_y_LER = m_beast.SKB_LER_correctedBeamSize_xray_Y->at(0);
1132 if (m_beast.SKB_LER_beamSize_SR_X != 0 && m_beast.SKB_LER_beamSize_SR_Y
1133 && m_beast.SKB_LER_beamSize_SR_X->size() > 0
1134 && m_beast.SKB_LER_beamSize_SR_Y->size() > 0)
1135 sigma_x_LER = m_beast.SKB_LER_correctedBeamSize_xray_Y->at(0) * m_beast.SKB_LER_beamSize_SR_X->at(
1136 0) / m_beast.SKB_LER_beamSize_SR_Y->at(0);
1143 if (m_input_sigma_x_LER[1] > 0) sigma_x_LER += gRandom->Gaus(0, m_input_sigma_x_LER[1]);
1144 if (m_input_sigma_y_LER[1] > 0) sigma_y_LER += gRandom->Gaus(0, m_input_sigma_y_LER[1]);
1145 double bunch_nb_HER = 0;
1146 if (m_beast.SKB_HER_injectionNumberOfBunches != 0
1147 && m_beast.SKB_HER_injectionNumberOfBunches->size() > 0) bunch_nb_HER = m_beast.SKB_HER_injectionNumberOfBunches->at(0);
1148 if (bunch_nb_HER == 0) bunch_nb_HER = m_input_data_bunchNb_HER;
1149 if (m_input_bunchNb_HER[1] > 0) bunch_nb_HER += gRandom->Gaus(0, m_input_bunchNb_HER[1]);
1150 double bunch_nb_LER = 0;
1151 if (m_beast.SKB_LER_injectionNumberOfBunches != 0
1152 && m_beast.SKB_LER_injectionNumberOfBunches->size() > 0) bunch_nb_LER = m_beast.SKB_LER_injectionNumberOfBunches->at(0);
1153 if (bunch_nb_LER == 0) bunch_nb_LER = m_input_data_bunchNb_LER;
1154 if (m_input_bunchNb_LER[1] > 0) bunch_nb_LER += gRandom->Gaus(0, m_input_bunchNb_LER[1]);
1162 if (I_HER < 0) I_HER = 0;
1163 if (I_LER < 0) I_LER = 0;
1164 if (P_HER < 0) P_HER = 0;
1165 if (P_LER < 0) P_LER = 0;
1166 if (P_corrected_HER < 0) P_corrected_HER = 0;
1167 if (P_corrected_LER < 0) P_corrected_LER = 0;
1169 if (m_input_data_SingleBeam ==
"LER") {
1172 P_corrected_HER = 0;
1173 }
else if (m_input_data_SingleBeam ==
"HER") {
1176 P_corrected_LER = 0;
1180 if (bunch_nb_HER > 0) Ib_HER = I_HER / bunch_nb_HER * 1e-3;
1182 if (bunch_nb_LER > 0) Ib_LER = I_LER / bunch_nb_LER * 1e-3;
1185 if (Ib_HER > 0) Nb_HER = Ib_HER * 3000. / TMath::C() / (1.6e-19);
1187 if (Ib_LER > 0) Nb_LER = Ib_LER * 3000. / TMath::C() / (1.6e-19);
1190 if (m_beast.SKB_HER_lifetime != 0 && m_beast.SKB_HER_lifetime->size() > 0 && Nb_HER > 0) {
1191 RLR_HER = Nb_HER / (m_beast.SKB_HER_lifetime->at(0) * 60.) * 1e-9 * bunch_nb_HER;
1192 m_beast.SKB_HER_RLR.push_back(RLR_HER);
1195 if (m_beast.SKB_LER_lifetime != 0 && m_beast.SKB_LER_lifetime->size() > 0 && Nb_LER > 0) {
1196 RLR_LER = Nb_LER / (m_beast.SKB_LER_lifetime->at(0) * 60.) * 1e-9 * bunch_nb_LER;
1197 m_beast.SKB_LER_RLR.push_back(RLR_LER);
1203 double ScaleFacBGav_HER = 0;
1204 double ScaleFacBGav_LER = 0;
1219 if (I_LER > 0 && P_corrected_LER > 0) {
1220 if (m_input_BGSol == 0
1221 && bunch_nb_LER > 0) ScaleFacBGav_LER = I_LER * P_corrected_LER / (m_input_I_LER[0] * m_input_P_LER[0]) / bunch_nb_LER *
1222 m_input_bunchNb_LER[0];
1223 if (m_input_BGSol == 1 && bunch_nb_LER > 0) ScaleFacBGav_LER = I_LER * P_corrected_LER / (m_input_I_LER[0] * m_input_P_LER[0]);
1225 if (I_HER > 0 && P_corrected_HER > 0) {
1226 if (m_input_BGSol == 0
1227 && bunch_nb_HER > 0) ScaleFacBGav_HER = I_HER * P_corrected_HER / (m_input_I_HER[0] * m_input_P_HER[0]) / bunch_nb_HER *
1228 m_input_bunchNb_HER[0];
1229 if (m_input_BGSol == 1 && bunch_nb_HER > 0) ScaleFacBGav_HER = I_HER * P_corrected_HER / (m_input_I_HER[0] * m_input_P_HER[0]);
1233 double ScaleFacBG_HER[12];
1234 double ScaleFacBG_LER[12];
1236 if (m_beast.SKB_HER_pressures != 0 && m_input_GasCorrection[0] != 1) {
1237 for (
int i = 0; i < (int)m_beast.SKB_HER_pressures->size(); i++) {
1238 ScaleFacBG_HER[i] = 0;
1240 iP_HER = m_beast.SKB_HER_pressures->at(i) * 0.00750062 * 1e9 * m_input_GasCorrection[0];
1241 if (m_input_P_HER[1] > 0) iP_HER += gRandom->Gaus(0, m_input_P_HER[1]);
1242 if (iP_HER < 0 || iP_HER > 260.) iP_HER = 0;
1243 if (I_HER > 0 && iP_HER > 0) {
1244 if (m_input_BGSol == 0
1245 && bunch_nb_HER > 0) ScaleFacBG_HER[i] = I_HER * iP_HER / (m_input_I_HER[0] * m_input_P_HER[0]) / bunch_nb_HER *
1246 m_input_bunchNb_HER[0];
1247 if (m_input_BGSol == 1 && bunch_nb_HER > 0) ScaleFacBG_HER[i] = I_HER * iP_HER / (m_input_I_HER[0] * m_input_P_HER[0]);
1251 if (m_beast.SKB_LER_pressures != 0 && m_input_GasCorrection[1] != 1) {
1252 for (
int i = 0; i < (int)m_beast.SKB_LER_pressures->size(); i++) {
1253 ScaleFacBG_LER[i] = 0;
1255 iP_LER = m_beast.SKB_LER_pressures->at(i) * 0.00750062 * 1e9 * m_input_GasCorrection[1];
1256 if (m_input_P_LER[1] > 0) iP_LER += gRandom->Gaus(0, m_input_P_LER[1]);
1257 if (iP_LER < 0 || iP_LER > 260.) iP_LER = 0;
1258 if (I_LER > 0 && iP_LER > 0) {
1259 if (m_input_BGSol == 0
1260 && bunch_nb_LER > 0) ScaleFacBG_LER[i] = I_LER * iP_LER / (m_input_I_LER[0] * m_input_P_LER[0]) / bunch_nb_LER *
1261 m_input_bunchNb_LER[0];
1262 if (m_input_BGSol == 1 && bunch_nb_LER > 0) ScaleFacBG_LER[i] = I_LER * iP_LER / (m_input_I_LER[0] * m_input_P_LER[0]);
1267 if (m_beast.SKB_HER_pressures_corrected != 0 && m_input_GasCorrection[0] == 1) {
1268 for (
int i = 0; i < (int)m_beast.SKB_HER_pressures_corrected->size(); i++) {
1269 ScaleFacBG_HER[i] = 0;
1271 iP_HER = m_beast.SKB_HER_pressures_corrected->at(i) * 0.00750062 * 1e9 * m_input_GasCorrection[0];
1272 if (m_input_P_HER[1] > 0) iP_HER += gRandom->Gaus(0, m_input_P_HER[1]);
1273 if (iP_HER < 0 || iP_HER > 260.) iP_HER = 0;
1274 if (I_HER > 0 && iP_HER > 0) {
1275 if (m_input_BGSol == 0
1276 && bunch_nb_HER > 0) ScaleFacBG_HER[i] = I_HER * iP_HER / (m_input_I_HER[0] * m_input_P_HER[0]) / bunch_nb_HER *
1277 m_input_bunchNb_HER[0];
1278 if (m_input_BGSol == 1 && bunch_nb_HER > 0) ScaleFacBG_HER[i] = I_HER * iP_HER / (m_input_I_HER[0] * m_input_P_HER[0]);
1282 if (m_beast.SKB_LER_pressures_corrected != 0 && m_input_GasCorrection[1] == 1) {
1283 for (
int i = 0; i < (int)m_beast.SKB_LER_pressures_corrected->size(); i++) {
1284 ScaleFacBG_LER[i] = 0;
1286 iP_LER = m_beast.SKB_LER_pressures_corrected->at(i) * 0.00750062 * 1e9 * m_input_GasCorrection[1];
1287 if (m_input_P_LER[1] > 0) iP_LER += gRandom->Gaus(0, m_input_P_LER[1]);
1288 if (iP_LER < 0 || iP_LER > 260.) iP_LER = 0;
1289 if (I_LER > 0 && iP_LER > 0) {
1290 if (m_input_BGSol == 0
1291 && bunch_nb_LER > 0) ScaleFacBG_LER[i] = I_LER * iP_LER / (m_input_I_LER[0] * m_input_P_LER[0]) / bunch_nb_LER *
1292 m_input_bunchNb_LER[0];
1293 if (m_input_BGSol == 1 && bunch_nb_LER > 0) ScaleFacBG_LER[i] = I_LER * iP_LER / (m_input_I_LER[0] * m_input_P_LER[0]);
1298 double ScaleFacTo_HER = 0;
1299 double ScaleFacTo_LER = 0;
1300 if (bunch_nb_LER > 0 && sigma_y_LER > 0 && I_LER > 0) {
1301 if (m_input_ToSol == 0) ScaleFacTo_LER = TMath::Power(I_LER / m_input_I_LER[0],
1302 2) / (bunch_nb_LER / m_input_bunchNb_LER[0]) / (sigma_y_LER / m_input_sigma_y_LER[0]);
1303 else if (m_input_ToSol == 1) ScaleFacTo_LER = TMath::Power(I_LER / m_input_I_LER[0],
1304 2) / (bunch_nb_LER / m_input_bunchNb_LER[0]) /
1305 (sqrt(sigma_y_LER * sigma_x_LER / m_input_sigma_y_LER[0] / m_input_sigma_x_LER[0]));
1307 if (bunch_nb_HER > 0 && sigma_y_HER > 0 && I_HER > 0) {
1308 if (m_input_ToSol == 0) ScaleFacTo_HER = TMath::Power(I_HER / m_input_I_HER[0],
1309 2) / (bunch_nb_HER / m_input_bunchNb_HER[0]) / (sigma_y_HER / m_input_sigma_y_HER[0]);
1310 else if (m_input_ToSol == 1) ScaleFacTo_HER = TMath::Power(I_HER / m_input_I_HER[0],
1311 2) / (bunch_nb_HER / m_input_bunchNb_HER[0]) /
1312 (sqrt(sigma_y_HER * sigma_x_HER / m_input_sigma_y_HER[0] / m_input_sigma_x_HER[0]));
1316 m_beast.mc_reweight_LERT.push_back(ScaleFacTo_LER);
1317 m_beast.mc_reweight_HERT.push_back(ScaleFacTo_HER);
1318 for (
int i = 0; i < 12; i ++) {
1319 m_beast.mc_reweight_HERC.push_back(Zeff_HC * ScaleFacBG_HER[i]);
1320 m_beast.mc_reweight_HERB.push_back(Zeff_HB * ScaleFacBG_HER[i]);
1322 m_beast.mc_reweight_LERC.push_back(Zeff_LC * ScaleFacBG_LER[i]);
1324 m_beast.mc_reweight_LERC.push_back(m_input_Z_scaling[1] * ScaleFacBG_LER[i]);
1326 m_beast.mc_reweight_LERB.push_back(Zeff_LB * ScaleFacBG_LER[i]);
1328 m_beast.mc_reweight_LERB.push_back(m_input_Z_scaling[3] * ScaleFacBG_LER[i]);
1331 if (m_input_part == 0) {
1332 ScaleFacBGav_HER = 0;
1333 ScaleFacBGav_LER = 0;
1334 for (
int i = 0; i < 12; i ++) {
1335 ScaleFacBG_HER[i] = 0;
1336 ScaleFacBG_LER[i] = 0;
1340 if (m_input_part == 1) {
1379 for (
int i = 0; i < (int)m_input_LT_SAD_RLR.size(); i++) {
1380 float LBG = m_input_LB_SAD_RLR_av[i] * Zeff_LB + m_input_LC_SAD_RLR_av[i] * Zeff_LC;
1381 float BG = LBG * ScaleFacBGav_LER;
1382 float To = ScaleFacTo_LER * m_input_LT_SAD_RLR[i];
1385 m_beast.SAD_LER_RLR_av.push_back(BG + To);
1386 m_beast.SAD_LER_lifetime_av.push_back(Nb_LER / (BG + To) * 1e-9 / 60. * bunch_nb_LER);
1389 for (
int j = 0; j < 12; j++) {
1391 if (m_input_LB_SAD_RLR.size() > 0) {
1392 LBG = m_input_LB_SAD_RLR[j] * Zeff_LB + m_input_LC_SAD_RLR[j] * Zeff_LC;
1393 BG += LBG * ScaleFacBG_LER[j];
1398 m_beast.SAD_LER_RLR.push_back(BG + To);
1399 m_beast.SAD_LER_lifetime.push_back(Nb_LER / (BG + To) * 1e-9 / 60. * bunch_nb_LER);
1403 for (
int i = 0; i < (int)m_input_HT_SAD_RLR.size(); i++) {
1404 float HBG = m_input_HB_SAD_RLR_av[i] + m_input_HC_SAD_RLR_av[i];
1405 float BG = HBG * ScaleFacBGav_HER;
1406 float To = ScaleFacTo_HER * m_input_HT_SAD_RLR[i];
1409 m_beast.SAD_HER_RLR_av.push_back(BG + To);
1410 m_beast.SAD_HER_lifetime_av.push_back(Nb_HER / (BG + To) * 1e-9 / 60. * bunch_nb_HER);
1413 for (
int j = 0; j < 12; j++) {
1415 if (m_input_HB_SAD_RLR.size() > 0) {
1416 HBG = m_input_HB_SAD_RLR[j] + m_input_HC_SAD_RLR[j];
1417 BG += HBG * ScaleFacBG_HER[j];
1422 m_beast.SAD_HER_RLR.push_back(BG + To);
1423 m_beast.SAD_HER_lifetime.push_back(Nb_HER / (BG + To) * 1e-9 / 60. * bunch_nb_HER);
1427 for (
int i = 0; i < (int)m_input_LT_DIA_dose.size(); i++) {
1428 double LBG = m_input_LB_DIA_dose_av[i] + m_input_LC_DIA_dose_av[i];
1429 double HBG = m_input_HB_DIA_dose_av[i] + m_input_HC_DIA_dose_av[i];
1430 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1431 double To = ScaleFacTo_LER * m_input_LT_DIA_dose[i] + ScaleFacTo_HER * m_input_HT_DIA_dose[i];
1439 m_beast.DIA_dose_av.push_back(BG + To);
1440 BG = 0; LBG = 0; HBG = 0;
1441 for (
int j = 0; j < 12; j++) {
1443 if (m_input_LB_DIA_dose[j].size() > 0) {
1445 HBG = m_input_HB_DIA_dose[j][i] + m_input_HC_DIA_dose[j][i];
1446 LBG = m_input_LB_DIA_dose[j][i] * Zeff_LB + m_input_LC_DIA_dose[j][i] * Zeff_LC;
1450 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1455 m_beast.DIA_dose.push_back(BG + To);
1459 for (
int i = 0; i < (int)m_input_LT_PIN_dose.size(); i++) {
1460 double LBG = m_input_LB_PIN_dose_av[i] + m_input_LC_PIN_dose_av[i];
1461 double HBG = m_input_HB_PIN_dose_av[i] + m_input_HC_PIN_dose_av[i];
1462 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1463 double To = ScaleFacTo_LER * m_input_LT_PIN_dose[i] + ScaleFacTo_HER * m_input_HT_PIN_dose[i];
1466 m_beast.PIN_dose_av.push_back(BG + To);
1467 BG = 0; LBG = 0; HBG = 0;
1468 for (
int j = 0; j < 12; j++) {
1470 if (m_input_LB_PIN_dose[j].size() > 0) {
1472 HBG = m_input_HB_PIN_dose[j][i] + m_input_HC_PIN_dose[j][i];
1473 LBG = m_input_LB_PIN_dose[j][i] * Zeff_LB + m_input_LC_PIN_dose[j][i] * Zeff_LC;
1474 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1479 m_beast.PIN_dose.push_back(BG + To);
1483 for (
int i = 0; i < (int)m_input_LT_DOSI.size(); i++) {
1487 double LBG = m_input_LB_DOSI_av[i] + m_input_LC_DOSI_av[i];
1488 double HBG = m_input_HB_DOSI_av[i] + m_input_HC_DOSI_av[i];
1489 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1490 double To = ScaleFacTo_LER * m_input_LT_DOSI[i] + ScaleFacTo_HER * m_input_HT_DOSI[i];
1493 m_beast.DOSI_av.push_back(BG + To);
1494 BG = 0; LBG = 0; HBG = 0;
1495 for (
int j = 0; j < 12; j++) {
1497 if (m_input_LB_DOSI[j].size() > 0) {
1499 HBG = m_input_HB_DOSI[j][i] + m_input_HC_DOSI[j][i];
1500 LBG = m_input_LB_DOSI[j][i] * Zeff_LB + m_input_LC_DOSI[j][i] * Zeff_LC;
1501 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1506 m_beast.DOSI.push_back(BG + To);
1510 for (
int i = 0; i < (int)m_input_LT_BGO_dose.size(); i++) {
1511 double LBG = m_input_LB_BGO_dose_av[i] + m_input_LC_BGO_dose_av[i];
1512 double HBG = m_input_HB_BGO_dose_av[i] + m_input_HC_BGO_dose_av[i];
1513 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1514 double To = ScaleFacTo_LER * m_input_LT_BGO_dose[i] + ScaleFacTo_HER * m_input_HT_BGO_dose[i];
1517 m_beast.BGO_energy_av.push_back(BG + To);
1518 BG = 0; LBG = 0; HBG = 0;
1519 for (
int j = 0; j < 12; j++) {
1521 if (m_input_LB_BGO_dose[j].size() > 0) {
1523 HBG = m_input_HB_BGO_dose[j][i] + m_input_HC_BGO_dose[j][i];
1524 LBG = m_input_LB_BGO_dose[j][i] * Zeff_LB + m_input_LC_BGO_dose[j][i] * Zeff_LC;
1525 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1530 m_beast.BGO_energy.push_back(BG + To);
1533 if (m_beast.ts > 1464868800) {
1545 for (
int i = 0; i < (int)m_input_LT_HE3_rate.size(); i++) {
1546 double LBG = m_input_LB_HE3_rate_av[he3order[i]] + m_input_LC_HE3_rate_av[he3order[i]];
1547 double HBG = m_input_HB_HE3_rate_av[he3order[i]] + m_input_HC_HE3_rate_av[he3order[i]];
1548 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1549 double To = ScaleFacTo_LER * m_input_LT_HE3_rate[he3order[i]] + ScaleFacTo_HER * m_input_HT_HE3_rate[he3order[i]];
1552 m_beast.HE3_rate_av.push_back(BG + To);
1553 BG = 0; LBG = 0; HBG = 0;
1554 for (
int j = 0; j < 12; j++) {
1556 if (m_input_LB_HE3_rate[j].size() > 0) {
1558 HBG = m_input_HB_HE3_rate[j][he3order[i]] + m_input_HC_HE3_rate[j][he3order[i]];
1559 LBG = m_input_LB_HE3_rate[j][he3order[i]] * Zeff_LB + m_input_LC_HE3_rate[j][he3order[i]] * Zeff_LC;
1560 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1565 m_beast.HE3_rate.push_back(BG + To);
1569 for (
int i = 0; i < (int)m_input_LT_TPC_rate.size(); i++) {
1570 double LBG = m_input_LB_TPC_rate_av[i] + m_input_LC_TPC_rate_av[i];
1571 double HBG = m_input_HB_TPC_rate_av[i] + m_input_HC_TPC_rate_av[i];
1572 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1573 double To = ScaleFacTo_LER * m_input_LT_TPC_rate[i] + ScaleFacTo_HER * m_input_HT_TPC_rate[i];
1574 int tpc_ch = (int)(i / 5);
1575 int n_type = i - 5 * tpc_ch;
1576 m_beast.TPC_rate_av[tpc_ch][n_type] = (BG + To);
1577 BG = 0; LBG = 0; HBG = 0;
1578 for (
int j = 0; j < 12; j++) {
1580 if (m_input_LB_TPC_rate[j].size() > 0) {
1582 HBG = m_input_HB_TPC_rate[j][i] + m_input_HC_TPC_rate[j][i];
1583 LBG = m_input_LB_TPC_rate[j][i] * Zeff_LB + m_input_LC_TPC_rate[j][i] * Zeff_LC;
1584 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1592 for (
int i = 0; i < (int)m_input_LT_TPC_dose.size(); i++) {
1593 double LBG = m_input_LB_TPC_dose_av[i] + m_input_LC_TPC_dose_av[i];
1594 double HBG = m_input_HB_TPC_dose_av[i] + m_input_HC_TPC_dose_av[i];
1595 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1596 double To = ScaleFacTo_LER * m_input_LT_TPC_dose[i] + ScaleFacTo_HER * m_input_HT_TPC_dose[i];
1600 m_beast.TPC_dose_av.push_back(BG + To);
1601 BG = 0; LBG = 0; HBG = 0;
1602 for (
int j = 0; j < 12; j++) {
1604 if (m_input_LB_TPC_dose[j].size() > 0) {
1606 HBG = m_input_HB_TPC_dose[j][i] + m_input_HC_TPC_dose[j][i];
1607 LBG = m_input_LB_TPC_dose[j][i] * Zeff_LB + m_input_LC_TPC_dose[j][i] * Zeff_LC;
1608 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1615 for (
int i = 0; i < (int)m_input_LT_TPC_angular_rate.size(); i++) {
1616 double LBG = m_input_LB_TPC_angular_rate_av[i] + m_input_LC_TPC_angular_rate_av[i];
1617 double HBG = m_input_HB_TPC_angular_rate_av[i] + m_input_HC_TPC_angular_rate_av[i];
1618 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1619 double To = ScaleFacTo_LER * m_input_LT_TPC_angular_rate[i] + ScaleFacTo_HER * m_input_HT_TPC_angular_rate[i];
1620 int tpc_ch = (int)(i / (9 * 18));
1621 int angle = i - (9 * 18) * tpc_ch;
1622 int i_theta = (int)(angle / 18);
1623 int i_phi = angle - 9 * i_theta;
1624 m_beast.TPC_angular_rate_av[tpc_ch][i_theta][i_phi] = (BG + To);
1625 BG = 0; LBG = 0; HBG = 0;
1626 for (
int j = 0; j < 12; j++) {
1628 if (m_input_LB_TPC_angular_rate[j].size() > 0) {
1630 HBG = m_input_HB_TPC_angular_rate[j][i] + m_input_HC_TPC_angular_rate[j][i];
1631 LBG = m_input_LB_TPC_angular_rate[j][i] * Zeff_LB + m_input_LC_TPC_angular_rate[j][i] * Zeff_LC;
1632 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1639 for (
int i = 0; i < (int)m_input_LT_TPC_angular_dose.size(); i++) {
1640 double LBG = m_input_LB_TPC_angular_dose_av[i] + m_input_LC_TPC_angular_dose_av[i];
1641 double HBG = m_input_HB_TPC_angular_dose_av[i] + m_input_HC_TPC_angular_dose_av[i];
1642 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1643 double To = ScaleFacTo_LER * m_input_LT_TPC_angular_dose[i] + ScaleFacTo_HER * m_input_HT_TPC_angular_dose[i];
1644 int tpc_ch = (int)(i / (9 * 18));
1645 int angle = i - (9 * 18) * tpc_ch;
1646 int i_theta = (int)(angle / 18);
1647 int i_phi = angle - 9 * i_theta;
1648 m_beast.TPC_angular_dose_av[tpc_ch][i_theta][i_phi] = (BG + To);
1649 BG = 0; LBG = 0; HBG = 0;
1650 for (
int j = 0; j < 12; j++) {
1652 if (m_input_LB_TPC_angular_dose[j].size() > 0) {
1654 HBG = m_input_HB_TPC_angular_dose[j][i] + m_input_HC_TPC_angular_dose[j][i];
1655 LBG = m_input_LB_TPC_angular_dose[j][i] * Zeff_LB + m_input_LC_TPC_angular_dose[j][i] * Zeff_LC;
1656 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1664 for (
int i = 0; i < (int)m_input_LT_CLAWS_rate.size(); i++) {
1665 double LBG = m_input_LB_CLAWS_rate_av[i] + m_input_LC_CLAWS_rate_av[i];
1666 double HBG = m_input_HB_CLAWS_rate_av[i] + m_input_HC_CLAWS_rate_av[i];
1667 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1668 double To = ScaleFacTo_LER * m_input_LT_CLAWS_rate[i] + ScaleFacTo_HER * m_input_HT_CLAWS_rate[i];
1671 m_beast.CLAWS_rate_av.push_back(BG + To);
1672 BG = 0; LBG = 0; HBG = 0;
1673 for (
int j = 0; j < 12; j++) {
1675 if (m_input_LB_CLAWS_rate[j].size() > 0) {
1677 HBG = m_input_HB_CLAWS_rate[j][i] + m_input_HC_CLAWS_rate[j][i];
1678 LBG = m_input_LB_CLAWS_rate[j][i] * Zeff_LB + m_input_LC_CLAWS_rate[j][i] * Zeff_LC;
1679 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1684 m_beast.CLAWS_rate.push_back(BG + To);
1688 for (
int i = 0; i < (int)m_input_LT_QCSS_rate.size(); i++) {
1689 double LBG = m_input_LB_QCSS_rate_av[i] + m_input_LC_QCSS_rate_av[i];
1690 double HBG = m_input_HB_QCSS_rate_av[i] + m_input_HC_QCSS_rate_av[i];
1691 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1692 double To = ScaleFacTo_LER * m_input_LT_QCSS_rate[i] + ScaleFacTo_HER * m_input_HT_QCSS_rate[i];
1695 m_beast.QCSS_rate_av.push_back(BG + To);
1696 BG = 0; LBG = 0; HBG = 0;
1697 for (
int j = 0; j < 12; j++) {
1699 if (m_input_LB_QCSS_rate[j].size() > 0) {
1701 HBG = m_input_HB_QCSS_rate[j][i] + m_input_HC_QCSS_rate[j][i];
1702 LBG = m_input_LB_QCSS_rate[j][i] * Zeff_LB + m_input_LC_QCSS_rate[j][i] * Zeff_LC;
1703 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1708 m_beast.QCSS_rate.push_back(BG + To);
1712 for (
int i = 0; i < (int)m_input_LT_CSI_dose.size(); i++) {
1713 double LBG = m_input_LB_CSI_dose_av[i] + m_input_LC_CSI_dose_av[i];
1714 double HBG = m_input_HB_CSI_dose_av[i] + m_input_HC_CSI_dose_av[i];
1715 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1716 double To = ScaleFacTo_LER * m_input_LT_CSI_dose[i] + ScaleFacTo_HER * m_input_HT_CSI_dose[i];
1719 m_beast.CSI_sumE_av.push_back(BG + To);
1720 BG = 0; LBG = 0; HBG = 0;
1721 for (
int j = 0; j < 12; j++) {
1723 if (m_input_LB_CSI_dose[j].size() > 0) {
1725 HBG = m_input_HB_CSI_dose[j][i] + m_input_HC_CSI_dose[j][i];
1726 LBG = m_input_LB_CSI_dose[j][i] * Zeff_LB + m_input_LC_CSI_dose[j][i] * Zeff_LC;
1727 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1732 m_beast.CSI_sumE.push_back(BG + To);
1734 for (
int i = 0; i < (int)m_input_LT_CSI_dose_binE.size(); i++) {
1735 double LBG = m_input_LB_CSI_dose_binE_av[i] + m_input_LC_CSI_dose_binE_av[i];
1736 double HBG = m_input_HB_CSI_dose_binE_av[i] + m_input_HC_CSI_dose_binE_av[i];
1737 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1738 double To = ScaleFacTo_LER * m_input_LT_CSI_dose_binE[i] + ScaleFacTo_HER * m_input_HT_CSI_dose_binE[i];
1741 m_beast.CSI_Ebin_av.push_back(BG + To);
1742 BG = 0; LBG = 0; HBG = 0;
1743 for (
int j = 0; j < 12; j++) {
1745 if (m_input_LB_CSI_dose_binE[j].size() > 0) {
1747 HBG = m_input_HB_CSI_dose_binE[j][i] + m_input_HC_CSI_dose_binE[j][i];
1748 LBG = m_input_LB_CSI_dose_binE[j][i] * Zeff_LB + m_input_LC_CSI_dose_binE[j][i] * Zeff_LC;
1749 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1754 m_beast.CSI_Ebin.push_back(BG + To);
1756 for (
int i = 0; i < (int)m_input_LT_CSI_rate.size(); i++) {
1757 double LBG = m_input_LB_CSI_rate_av[i] + m_input_LC_CSI_rate_av[i];
1758 double HBG = m_input_HB_CSI_rate_av[i] + m_input_HC_CSI_rate_av[i];
1759 double BG = LBG * ScaleFacBGav_LER + HBG * ScaleFacBGav_HER;
1760 double To = ScaleFacTo_LER * m_input_LT_CSI_rate[i] + ScaleFacTo_HER * m_input_HT_CSI_rate[i];
1763 m_beast.CSI_hitRate_av.push_back(BG + To);
1764 BG = 0; LBG = 0; HBG = 0;
1765 for (
int j = 0; j < 12; j++) {
1767 if (m_input_LB_CSI_rate[j].size() > 0) {
1769 HBG = m_input_HB_CSI_rate[j][i] + m_input_HC_CSI_rate[j][i];
1770 LBG = m_input_LB_CSI_rate[j][i] * Zeff_LB + m_input_LC_CSI_rate[j][i] * Zeff_LC;
1771 BG += LBG * ScaleFacBG_LER[j] + HBG * ScaleFacBG_HER[j];
1776 m_beast.CSI_hitRate.push_back(BG + To);
1779 m_treeBEAST->Fill();
1791 void NtuplePhase1_v6Module::endRun()
1795 void NtuplePhase1_v6Module::terminate()
1799 m_treeBEAST->Write();
1800 m_treeTruth->Write();
1804 void NtuplePhase1_v6Module::printModuleParams()
const