48 fEDZCenter = pset.get<std::vector<double>>(
"EDZCenter");
49 fEDAXPosOffs = pset.get<std::vector<double>>(
"EDAXPosOffs");
50 fEDBZPosOffs = pset.get<std::vector<double>>(
"EDBZPosOffs");
51 fEDs = pset.get<std::vector<double>>(
"EDs");
55 size_t ieds = fEnableElectronDiverterDistortions.size();
56 if (fEDZCenter.size() != ieds ||
57 fEDAXPosOffs.size() != ieds ||
58 fEDBZPosOffs.size() != ieds ||
59 fEDs.size() != ieds ||
60 fEDChargeLossZLow.size() != ieds ||
61 fEDChargeLossZHigh.size() != ieds)
63 throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Inconsistent configuration sizes: " <<
65 fEDAXPosOffs.size() <<
" " <<
66 fEDBZPosOffs.size() <<
" " <<
68 fEDChargeLossZLow.size() <<
" " <<
69 fEDChargeLossZHigh.size();
75 bool created_efield_splines =
false;
86 sp.find_file(fInputFilename,fname);
88 std::unique_ptr<TFile>
infile(
new TFile(fname.c_str(),
"READ"));
89 if(!
infile->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname <<
"'!\n";
94 TH3F* hDx_sim_pos_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_X_Pos");
95 TH3F* hDy_sim_pos_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_Y_Pos");
96 TH3F* hDz_sim_pos_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_Z_Pos");
97 TH3F* hEx_sim_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_X_Pos");
98 TH3F* hEy_sim_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Y_Pos");
99 TH3F* hEz_sim_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Z_Pos");
101 TH3F* hDx_sim_neg_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_X_Neg");
102 TH3F* hDy_sim_neg_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_Y_Neg");
103 TH3F* hDz_sim_neg_orig = (TH3F*)
infile->Get(
"RecoFwd_Displacement_Z_Neg");
104 TH3F* hEx_sim_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_X_Neg");
105 TH3F* hEy_sim_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Y_Neg");
106 TH3F* hEz_sim_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Z_Neg");
108 TH3F* hDx_sim_pos = (TH3F*)hDx_sim_pos_orig->Clone(
"hDx_pos");
109 TH3F* hDy_sim_pos = (TH3F*)hDy_sim_pos_orig->Clone(
"hDy_pos");
110 TH3F* hDz_sim_pos = (TH3F*)hDz_sim_pos_orig->Clone(
"hDz_pos");
111 TH3F* hEx_sim_pos = (TH3F*)hEx_sim_pos_orig->Clone(
"hEx_pos");
112 TH3F* hEy_sim_pos = (TH3F*)hEy_sim_pos_orig->Clone(
"hEy_pos");
113 TH3F* hEz_sim_pos = (TH3F*)hEz_sim_pos_orig->Clone(
"hEz_pos");
115 TH3F* hDx_sim_neg = (TH3F*)hDx_sim_neg_orig->Clone(
"hDx_neg");
116 TH3F* hDy_sim_neg = (TH3F*)hDy_sim_neg_orig->Clone(
"hDy_neg");
117 TH3F* hDz_sim_neg = (TH3F*)hDz_sim_neg_orig->Clone(
"hDz_neg");
118 TH3F* hEx_sim_neg = (TH3F*)hEx_sim_neg_orig->Clone(
"hEx_neg");
119 TH3F* hEy_sim_neg = (TH3F*)hEy_sim_neg_orig->Clone(
"hEy_neg");
120 TH3F* hEz_sim_neg = (TH3F*)hEz_sim_neg_orig->Clone(
"hEz_neg");
122 hDx_sim_pos->SetDirectory(0);
123 hDy_sim_pos->SetDirectory(0);
124 hDz_sim_pos->SetDirectory(0);
125 hEx_sim_pos->SetDirectory(0);
126 hEy_sim_pos->SetDirectory(0);
127 hEz_sim_pos->SetDirectory(0);
129 hDx_sim_neg->SetDirectory(0);
130 hDy_sim_neg->SetDirectory(0);
131 hDz_sim_neg->SetDirectory(0);
132 hEx_sim_neg->SetDirectory(0);
133 hEy_sim_neg->SetDirectory(0);
134 hEz_sim_neg->SetDirectory(0);
137 int nBinsX = hDx_sim_pos_orig->GetNbinsX();
138 int nBinsY = hDx_sim_pos_orig->GetNbinsY();
139 int nBinsZ = hDx_sim_pos_orig->GetNbinsZ();
140 for(
int y = 1;
y <= nBinsY;
y++){
143 for(
int z = 1;
z <= nBinsZ;
z++){
148 for(
int x = 1;
x <= nBinsX;
x++){
152 for(
int z = 1;
z <= nBinsZ;
z++){
157 for(
int x = 1;
x <= nBinsX;
x++){
160 for(
int y = 1;
y <= nBinsY;
y++){
166 nBinsX = hEx_sim_pos_orig->GetNbinsX();
167 nBinsY = hEx_sim_pos_orig->GetNbinsY();
168 nBinsZ = hEx_sim_pos_orig->GetNbinsZ();
169 for(
int y = 1;
y <= nBinsY;
y++){
172 for(
int z = 1;
z <= nBinsZ;
z++){
177 for(
int x = 1;
x <= nBinsX;
x++){
181 for(
int z = 1;
z <= nBinsZ;
z++){
186 for(
int x = 1;
x <= nBinsX;
x++){
189 for(
int y = 1;
y <= nBinsY;
y++){
194 created_efield_splines =
true;
197 SCEhistograms = {hDx_sim_pos, hDy_sim_pos, hDz_sim_pos, hEx_sim_pos, hEy_sim_pos, hEz_sim_pos, hDx_sim_neg, hDy_sim_neg, hDz_sim_neg, hEx_sim_neg, hEy_sim_neg, hEz_sim_neg};
202 if (fInputFilename.find(
"NegX")<fInputFilename.length()){
204 TTree* treeD_negX = (TTree*)
infile->Get(
"SpaCEtree_fwdDisp");
205 TTree* treeE_negX = (TTree*)
infile->Get(
"SpaCEtree");
207 fInputFilename.replace(fInputFilename.find(
"NegX"),3,
"Pos");
210 sp.find_file(fInputFilename,fname2);
211 std::unique_ptr<TFile> infile2(
new TFile(fname2.c_str(),
"READ"));
212 if(!infile2->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname2 <<
"'!\n";
214 TTree* treeD_posX = (TTree*)infile2->Get(
"SpaCEtree_fwdDisp");
215 TTree* treeE_posX = (TTree*)infile2->Get(
"SpaCEtree");
217 std::vector<TH3F*>
temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX, treeE_negX,
"x_true",
"y_true",
"z_true",
"fwd");
219 for (
size_t ii = 0; ii<temp.size(); ii++){
227 }
else if (fInputFilename.find(
"PosX")<fInputFilename.length()){
229 TTree* treeD_posX = (TTree*)
infile->Get(
"SpaCEtree_fwdDisp");
230 TTree* treeE_posX = (TTree*)
infile->Get(
"SpaCEtree");
232 fInputFilename.replace(fInputFilename.find(
"PosX"),3,
"Neg");
235 sp.find_file(fInputFilename,fname2);
236 std::unique_ptr<TFile> infile2(
new TFile(fname2.c_str(),
"READ"));
237 if(!infile2->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname2 <<
"'!\n";
239 TTree* treeD_negX = (TTree*)infile2->Get(
"SpaCEtree_fwdDisp");
240 TTree* treeE_negX = (TTree*)infile2->Get(
"SpaCEtree");
242 std::vector<TH3F*> temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX, treeE_negX,
"x_true",
"y_true",
"z_true",
"fwd");
244 for (
size_t ii = 0; ii<temp.size(); ii++){
253 TTree* treeD_negX = (TTree*)
infile->Get(
"SpaCEtree_fwdDisp");
254 TTree* treeE_negX = (TTree*)
infile->Get(
"SpaCEtree");
256 TTree* treeD_posX = (TTree*)
infile->Get(
"SpaCEtree_fwdDisp");
257 TTree* treeE_posX = (TTree*)
infile->Get(
"SpaCEtree");
259 std::vector<TH3F*> temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX, treeE_negX,
"x_true",
"y_true",
"z_true",
"fwd");
261 for (
size_t ii = 0; ii<temp.size(); ii++){
271 for(
int i = 0; i < 5; i++)
273 g1_x[i] = (TGraph*)
infile->Get(Form(
"deltaX/g1_%d",i));
274 g2_x[i] = (TGraph*)
infile->Get(Form(
"deltaX/g2_%d",i));
275 g3_x[i] = (TGraph*)
infile->Get(Form(
"deltaX/g3_%d",i));
276 g4_x[i] = (TGraph*)
infile->Get(Form(
"deltaX/g4_%d",i));
277 g5_x[i] = (TGraph*)
infile->Get(Form(
"deltaX/g5_%d",i));
278 g1_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g1_%d",i));
279 g2_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g2_%d",i));
280 g3_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g3_%d",i));
281 g4_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g4_%d",i));
282 g5_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g5_%d",i));
283 g6_y[i] = (TGraph*)
infile->Get(Form(
"deltaY/g6_%d",i));
284 g1_z[i] = (TGraph*)
infile->Get(Form(
"deltaZ/g1_%d",i));
285 g2_z[i] = (TGraph*)
infile->Get(Form(
"deltaZ/g2_%d",i));
286 g3_z[i] = (TGraph*)
infile->Get(Form(
"deltaZ/g3_%d",i));
287 g4_z[i] = (TGraph*)
infile->Get(Form(
"deltaZ/g4_%d",i));
288 g1_Ex[i] = (TGraph*)
infile->Get(Form(
"deltaExOverE/g1_%d",i));
289 g2_Ex[i] = (TGraph*)
infile->Get(Form(
"deltaExOverE/g2_%d",i));
290 g3_Ex[i] = (TGraph*)
infile->Get(Form(
"deltaExOverE/g3_%d",i));
291 g4_Ex[i] = (TGraph*)
infile->Get(Form(
"deltaExOverE/g4_%d",i));
292 g5_Ex[i] = (TGraph*)
infile->Get(Form(
"deltaExOverE/g5_%d",i));
293 g1_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g1_%d",i));
294 g2_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g2_%d",i));
295 g3_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g3_%d",i));
296 g4_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g4_%d",i));
297 g5_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g5_%d",i));
298 g6_Ey[i] = (TGraph*)
infile->Get(Form(
"deltaEyOverE/g6_%d",i));
299 g1_Ez[i] = (TGraph*)
infile->Get(Form(
"deltaEzOverE/g1_%d",i));
300 g2_Ez[i] = (TGraph*)
infile->Get(Form(
"deltaEzOverE/g2_%d",i));
301 g3_Ez[i] = (TGraph*)
infile->Get(Form(
"deltaEzOverE/g3_%d",i));
302 g4_Ez[i] = (TGraph*)
infile->Get(Form(
"deltaEzOverE/g4_%d",i));
304 g1_x[5] = (TGraph*)
infile->Get(
"deltaX/g1_5");
305 g2_x[5] = (TGraph*)
infile->Get(
"deltaX/g2_5");
306 g3_x[5] = (TGraph*)
infile->Get(
"deltaX/g3_5");
307 g4_x[5] = (TGraph*)
infile->Get(
"deltaX/g4_5");
308 g5_x[5] = (TGraph*)
infile->Get(
"deltaX/g5_5");
309 g1_y[5] = (TGraph*)
infile->Get(
"deltaY/g1_5");
310 g2_y[5] = (TGraph*)
infile->Get(
"deltaY/g2_5");
311 g3_y[5] = (TGraph*)
infile->Get(
"deltaY/g3_5");
312 g4_y[5] = (TGraph*)
infile->Get(
"deltaY/g4_5");
313 g5_y[5] = (TGraph*)
infile->Get(
"deltaY/g5_5");
314 g6_y[5] = (TGraph*)
infile->Get(
"deltaY/g6_5");
316 g1_x[6] = (TGraph*)
infile->Get(
"deltaX/g1_6");
317 g2_x[6] = (TGraph*)
infile->Get(
"deltaX/g2_6");
318 g3_x[6] = (TGraph*)
infile->Get(
"deltaX/g3_6");
319 g4_x[6] = (TGraph*)
infile->Get(
"deltaX/g4_6");
320 g5_x[6] = (TGraph*)
infile->Get(
"deltaX/g5_6");
321 g1_Ex[5] = (TGraph*)
infile->Get(
"deltaExOverE/g1_5");
322 g2_Ex[5] = (TGraph*)
infile->Get(
"deltaExOverE/g2_5");
323 g3_Ex[5] = (TGraph*)
infile->Get(
"deltaExOverE/g3_5");
324 g4_Ex[5] = (TGraph*)
infile->Get(
"deltaExOverE/g4_5");
325 g5_Ex[5] = (TGraph*)
infile->Get(
"deltaExOverE/g5_5");
326 g1_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g1_5");
327 g2_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g2_5");
328 g3_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g3_5");
329 g4_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g4_5");
330 g5_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g5_5");
331 g6_Ey[5] = (TGraph*)
infile->Get(
"deltaEyOverE/g6_5");
332 g1_Ex[6] = (TGraph*)
infile->Get(
"deltaExOverE/g1_6");
333 g2_Ex[6] = (TGraph*)
infile->Get(
"deltaExOverE/g2_6");
334 g3_Ex[6] = (TGraph*)
infile->Get(
"deltaExOverE/g3_6");
335 g4_Ex[6] = (TGraph*)
infile->Get(
"deltaExOverE/g4_6");
336 g5_Ex[6] = (TGraph*)
infile->Get(
"deltaExOverE/g5_6");
341 if((fEnableCalSpatialSCE ==
true) || (fEnableCalEfieldSCE ==
true))
349 sp.find_file(fCalInputFilename,fname);
351 std::unique_ptr<TFile>
infile(
new TFile(fname.c_str(),
"READ"));
352 if(!
infile->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname <<
"'!\n";
357 TH3F* hDx_cal_pos_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_X_Pos");
358 TH3F* hDy_cal_pos_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_Y_Pos");
359 TH3F* hDz_cal_pos_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_Z_Pos");
360 TH3F* hEx_cal_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_X_Pos");
361 TH3F* hEy_cal_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Y_Pos");
362 TH3F* hEz_cal_pos_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Z_Pos");
364 TH3F* hDx_cal_neg_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_X_Neg");
365 TH3F* hDy_cal_neg_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_Y_Neg");
366 TH3F* hDz_cal_neg_orig = (TH3F*)
infile->Get(
"RecoBkwd_Displacement_Z_Neg");
367 TH3F* hEx_cal_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_X_Neg");
368 TH3F* hEy_cal_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Y_Neg");
369 TH3F* hEz_cal_neg_orig = (TH3F*)
infile->Get(
"Reco_ElecField_Z_Neg");
371 TH3F* hDx_cal_pos = (TH3F*)hDx_cal_pos_orig->Clone(
"hDx_pos");
372 TH3F* hDy_cal_pos = (TH3F*)hDy_cal_pos_orig->Clone(
"hDy_pos");
373 TH3F* hDz_cal_pos = (TH3F*)hDz_cal_pos_orig->Clone(
"hDz_pos");
374 TH3F* hEx_cal_pos = (TH3F*)hEx_cal_pos_orig->Clone(
"hEx_pos");
375 TH3F* hEy_cal_pos = (TH3F*)hEy_cal_pos_orig->Clone(
"hEy_pos");
376 TH3F* hEz_cal_pos = (TH3F*)hEz_cal_pos_orig->Clone(
"hEz_pos");
378 TH3F* hDx_cal_neg = (TH3F*)hDx_cal_neg_orig->Clone(
"hDx_neg");
379 TH3F* hDy_cal_neg = (TH3F*)hDy_cal_neg_orig->Clone(
"hDy_neg");
380 TH3F* hDz_cal_neg = (TH3F*)hDz_cal_neg_orig->Clone(
"hDz_neg");
381 TH3F* hEx_cal_neg = (TH3F*)hEx_cal_neg_orig->Clone(
"hEx_neg");
382 TH3F* hEy_cal_neg = (TH3F*)hEy_cal_neg_orig->Clone(
"hEy_neg");
383 TH3F* hEz_cal_neg = (TH3F*)hEz_cal_neg_orig->Clone(
"hEz_neg");
385 hDx_cal_pos->SetDirectory(0);
386 hDy_cal_pos->SetDirectory(0);
387 hDz_cal_pos->SetDirectory(0);
388 hEx_cal_pos->SetDirectory(0);
389 hEy_cal_pos->SetDirectory(0);
390 hEz_cal_pos->SetDirectory(0);
392 hDx_cal_neg->SetDirectory(0);
393 hDy_cal_neg->SetDirectory(0);
394 hDz_cal_neg->SetDirectory(0);
395 hEx_cal_neg->SetDirectory(0);
396 hEy_cal_neg->SetDirectory(0);
397 hEz_cal_neg->SetDirectory(0);
400 int nBinsX = hDx_cal_pos_orig->GetNbinsX();
401 int nBinsY = hDx_cal_pos_orig->GetNbinsY();
402 int nBinsZ = hDx_cal_pos_orig->GetNbinsZ();
406 for(
int y = 1;
y <= nBinsY;
y++){
409 for(
int z = 1;
z <= nBinsZ;
z++){
414 for(
int x = 1;
x <= nBinsX;
x++){
417 for(
int z = 1;
z <= nBinsZ;
z++){
422 for(
int x = 1;
x <= nBinsX;
x++){
425 for(
int y = 1;
y <= nBinsY;
y++){
430 if(created_efield_splines ==
false){
431 nBinsX = hEx_cal_neg->GetNbinsX();
432 nBinsY = hEx_cal_neg->GetNbinsY();
433 nBinsZ = hEx_cal_neg->GetNbinsZ();
434 for(
int y = 1;
y <= nBinsY;
y++){
437 for(
int z = 1;
z <= nBinsZ;
z++){
442 for(
int x = 1;
x <= nBinsX;
x++){
445 for(
int z = 1;
z <= nBinsZ;
z++){
450 for(
int x = 1;
x <= nBinsX;
x++){
453 for(
int y = 1;
y <= nBinsY;
y++){
458 created_efield_splines =
true;
463 CalSCEhistograms = {hDx_cal_pos, hDy_cal_pos, hDz_cal_pos, hEx_cal_pos, hEy_cal_pos, hEz_cal_pos, hDx_cal_neg, hDy_cal_neg, hDz_cal_neg, hEx_cal_neg, hEy_cal_neg, hEz_cal_neg};
468 if (fCalInputFilename.find(
"NegX")<fCalInputFilename.length()){
470 TTree* treeD_negX = (TTree*)
infile->Get(
"SpaCEtree_bkwdDisp");
471 TTree* treeE_negX = (TTree*)
infile->Get(
"SpaCEtree");
473 fCalInputFilename.replace(fCalInputFilename.find(
"NegX"),3,
"Pos");
476 sp.find_file(fCalInputFilename,fname2);
477 std::unique_ptr<TFile> infile2(
new TFile(fname2.c_str(),
"READ"));
478 if(!infile2->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname2 <<
"'!\n";
480 TTree* treeD_posX = (TTree*)infile2->Get(
"SpaCEtree_bkwdDisp");
481 TTree* treeE_posX = (TTree*)infile2->Get(
"SpaCEtree");
483 std::vector<TH3F*> temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX,treeE_negX,
"x_reco",
"y_reco",
"z_reco",
"bkwd");
484 for (
size_t ii = 0; ii<temp.size(); ii++){
491 }
else if (fCalInputFilename.find(
"PosX")<fCalInputFilename.length()){
493 TTree* treeD_posX = (TTree*)
infile->Get(
"SpaCEtree_bkwdDisp");
494 TTree* treeE_posX = (TTree*)
infile->Get(
"SpaCEtree");
496 fCalInputFilename.replace(fCalInputFilename.find(
"PosX"),3,
"Neg");
499 sp.find_file(fCalInputFilename,fname2);
500 std::unique_ptr<TFile> infile2(
new TFile(fname2.c_str(),
"READ"));
501 if(!infile2->IsOpen())
throw cet::exception(
"SpaceChargeProtoDUNE") <<
"Could not find the space charge effect file '" << fname2 <<
"'!\n";
503 TTree* treeD_negX = (TTree*)infile2->Get(
"SpaCEtree_bkwdDisp");
504 TTree* treeE_negX = (TTree*)infile2->Get(
"SpaCEtree");
506 std::vector<TH3F*> temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX,treeE_negX,
"x_reco",
"y_reco",
"z_reco",
"bkwd");
507 for (
size_t ii = 0; ii<temp.size(); ii++){
516 TTree* treeD_negX = (TTree*)
infile->Get(
"SpaCEtree_bkwdDisp");
517 TTree* treeE_negX = (TTree*)
infile->Get(
"SpaCEtree");
519 TTree* treeD_posX = (TTree*)
infile->Get(
"SpaCEtree_bkwdDisp");
520 TTree* treeE_posX = (TTree*)
infile->Get(
"SpaCEtree");
522 std::vector<TH3F*> temp =
Build_TH3(treeD_posX, treeE_posX, treeD_negX,treeE_negX,
"x_reco",
"y_reco",
"z_reco",
"bkwd");
523 for (
size_t ii = 0; ii<temp.size(); ii++){
530 }
else { std::cout <<
"No space charge representation type chosen." <<
std::endl;}
std::vector< std::vector< TSpline3 * > > spline_dy_bkwd_pos
std::vector< std::vector< TSpline3 * > > spline_dEz_neg
std::vector< std::vector< TSpline3 * > > spline_dz_fwd_neg
std::vector< double > fEDZCenter
std::vector< std::vector< TSpline3 * > > spline_dEx_neg
bool fEnableCalSpatialSCE
std::vector< std::vector< TSpline3 * > > spline_dy_fwd_neg
std::vector< std::vector< TSpline3 * > > spline_dx_bkwd_neg
std::vector< std::vector< TSpline3 * > > spline_dy_bkwd_neg
std::vector< double > fEDs
std::vector< std::vector< TSpline3 * > > spline_dEy_neg
TSpline3 * MakeSpline(TH3F *spline_hist, int dim1, int dim2_bin, int dim3_bin, int maptype, int driftvol) const
Create one spline for later use in SCE map interpolation.
std::string fRepresentationType
bool fEnableSimSpatialSCE
std::vector< std::vector< TSpline3 * > > spline_dEx_pos
std::vector< TH3F * > SCEhistograms
std::vector< std::vector< TSpline3 * > > spline_dx_bkwd_pos
std::string fCalInputFilename
std::vector< std::vector< TSpline3 * > > spline_dz_bkwd_pos
std::string fInputFilename
std::vector< std::vector< TSpline3 * > > spline_dz_fwd_pos
std::vector< std::vector< TSpline3 * > > spline_dEz_pos
std::vector< bool > fEnableElectronDiverterDistortions
std::vector< std::vector< TSpline3 * > > spline_dx_fwd_pos
std::vector< std::vector< TSpline3 * > > spline_dy_fwd_pos
std::vector< double > fEDBZPosOffs
std::vector< std::vector< TSpline3 * > > spline_dx_fwd_neg
std::vector< double > fEDChargeLossZLow
std::vector< TH3F * > CalSCEhistograms
std::vector< std::vector< TSpline3 * > > spline_dz_bkwd_neg
std::vector< std::vector< TSpline3 * > > spline_dEy_pos
std::vector< TH3F * > Build_TH3(TTree *tree_pos, TTree *eTree_pos, TTree *tree_neg, TTree *eTree_neg, std::string xvar, std::string yvar, std::string zvar, std::string posLeaf) const
Build 3d histograms for voxelized interpolation.
std::vector< double > fEDAXPosOffs
cet::coded_exception< error, detail::translate > exception
QTextStream & endl(QTextStream &s)
std::vector< double > fEDChargeLossZHigh