@@ -108,11 +108,6 @@ std::vector<std::pair<unsigned int, unsigned int>> sys::WireModUtility::GetHitTa
108108 return target_roi_vec;
109109}
110110
111- // --- FillROIMatchedIDEMap ---
112- void sys::WireModUtility::FillROIMatchedIDEMap (std::vector<sim::SimChannel> const & simchVec, std::vector<recob::Wire> const & wireVec, double offset)
113- {
114- }
115-
116111// --- FillROIMatchedEdepMap ---
117112void sys::WireModUtility::FillROIMatchedEdepMap (std::vector<sim::SimEnergyDeposit> const & edepVec, std::vector<recob::Wire> const & wireVec, double offset)
118113{
@@ -366,6 +361,7 @@ sys::WireModUtility::TruthProperties_t sys::WireModUtility::CalcPropertiesFromEd
366361 edep_props.dxdr = (edep_ptr->EndX () - edep_ptr->StartX ()) / edep_ptr->StepLength ();
367362 edep_props.dydr = (edep_ptr->EndY () - edep_ptr->StartY ()) / edep_ptr->StepLength ();
368363 edep_props.dzdr = (edep_ptr->EndZ () - edep_ptr->StartZ ()) / edep_ptr->StepLength ();
364+
369365 edep_props.dedr = edep_ptr->E () / edep_ptr->StepLength ();
370366
371367 total_energy_all += edep_ptr->E ();
@@ -413,6 +409,7 @@ sys::WireModUtility::TruthProperties_t sys::WireModUtility::CalcPropertiesFromEd
413409 edep_col_properties.dxdr = 0 .;
414410 edep_col_properties.dydr = 0 .;
415411 edep_col_properties.dzdr = 0 .;
412+
416413 edep_col_properties.dedr = 0 .;
417414
418415 double total_energy = 0.0 ;
@@ -431,6 +428,7 @@ sys::WireModUtility::TruthProperties_t sys::WireModUtility::CalcPropertiesFromEd
431428 edep_col_properties.dxdr += edep_ptr->E ()*(edep_ptr->EndX () - edep_ptr->StartX ()) / edep_ptr->StepLength ();
432429 edep_col_properties.dydr += edep_ptr->E ()*(edep_ptr->EndY () - edep_ptr->StartY ()) / edep_ptr->StepLength ();
433430 edep_col_properties.dzdr += edep_ptr->E ()*(edep_ptr->EndZ () - edep_ptr->StartZ ()) / edep_ptr->StepLength ();
431+
434432 edep_col_properties.dedr += edep_ptr->E ()*edep_ptr->E () / edep_ptr->StepLength ();
435433 }
436434
@@ -442,6 +440,7 @@ sys::WireModUtility::TruthProperties_t sys::WireModUtility::CalcPropertiesFromEd
442440 edep_col_properties.dxdr = edep_col_properties.dxdr / total_energy;
443441 edep_col_properties.dydr = edep_col_properties.dydr / total_energy;
444442 edep_col_properties.dzdr = edep_col_properties.dzdr / total_energy;
443+
445444 edep_col_properties.dedr = edep_col_properties.dedr / total_energy;
446445 }
447446
@@ -571,7 +570,7 @@ sys::WireModUtility::ScaleValues_t sys::WireModUtility::GetViewScaleValues(sys::
571570 scales.r_sigma *= splines_Sigma_YZAngle [plane]->Eval (ThetaYZ_PlaneRel (truth_props.dxdr , truth_props.dydr , truth_props.dzdr , plane_obj.ThetaZ ()));
572571 }
573572
574- if (applydEdXScale)
573+ if (applydEdXScale)
575574 {
576575 if (splines_Charge_dEdX[plane] == nullptr ||
577576 splines_Sigma_dEdX [plane] == nullptr )
@@ -581,6 +580,45 @@ sys::WireModUtility::ScaleValues_t sys::WireModUtility::GetViewScaleValues(sys::
581580 scales.r_sigma *= splines_Sigma_dEdX [plane]->Eval (truth_props.dedr );
582581 }
583582
583+ if (applyXXZAngleScale)
584+ {
585+ if (graph2Ds_Charge_XXZAngle[plane] == nullptr ||
586+ graph2Ds_Sigma_XXZAngle [plane] == nullptr )
587+ throw cet::exception (" WireModUtility" )
588+ << " Tried to apply XXZAngle scale factor, but could not find graphs. Check that you have set those in the utility." ;
589+ temp_scale = graph2Ds_Charge_XXZAngle[plane]->Interpolate (truth_props.x , ThetaXZ_PlaneRel (truth_props.dxdr , truth_props.dydr , truth_props.dzdr , plane_obj.ThetaZ ()));
590+ if (temp_scale>0.001 ) scales.r_Q *= temp_scale;
591+
592+ temp_scale = graph2Ds_Sigma_XXZAngle [plane]->Interpolate (truth_props.x , ThetaXZ_PlaneRel (truth_props.dxdr , truth_props.dydr , truth_props.dzdr , plane_obj.ThetaZ ()));
593+ if (temp_scale>0.001 ) scales.r_sigma *= temp_scale;
594+ }
595+
596+ if (applyXdQdXScale)
597+ {
598+ if (graph2Ds_Charge_XdQdX[plane] == nullptr ||
599+ graph2Ds_Sigma_XdQdX [plane] == nullptr )
600+ throw cet::exception (" WireModUtility" )
601+ << " Tried to apply XdQdX scale factor, but could not find graphs. Check that you have set those in the utility." ;
602+ temp_scale = graph2Ds_Charge_XdQdX[plane]->Interpolate (truth_props.x , truth_props.dqdr );
603+ if (temp_scale>0.001 ) scales.r_Q *= temp_scale;
604+
605+ temp_scale = graph2Ds_Sigma_XdQdX [plane]->Interpolate (truth_props.x , truth_props.dqdr );
606+ if (temp_scale>0.001 ) scales.r_sigma *= temp_scale;
607+ }
608+
609+ if (applyXZAngledQdXScale)
610+ {
611+ if (graph2Ds_Charge_XZAngledQdX[plane] == nullptr ||
612+ graph2Ds_Sigma_XZAngledQdX [plane] == nullptr )
613+ throw cet::exception (" WireModUtility" )
614+ << " Tried to apply XZAngledQdX scale factor, but could not find graphs. Check that you have set those in the utility." ;
615+ temp_scale = graph2Ds_Charge_XZAngledQdX[plane]->Interpolate (ThetaXZ_PlaneRel (truth_props.dxdr , truth_props.dydr , truth_props.dzdr , plane_obj.ThetaZ ()), truth_props.dqdr );
616+ if (temp_scale>0.001 ) scales.r_Q *= temp_scale;
617+
618+ temp_scale = graph2Ds_Sigma_XZAngledQdX [plane]->Interpolate (ThetaXZ_PlaneRel (truth_props.dxdr , truth_props.dydr , truth_props.dzdr , plane_obj.ThetaZ ()), truth_props.dqdr );
619+ if (temp_scale>0.001 ) scales.r_sigma *= temp_scale;
620+ }
621+
584622 return scales;
585623}
586624
0 commit comments