diff --git a/Inputs/DetectorConfiguration/Riken_65mm.detector b/Inputs/DetectorConfiguration/Riken_65mm.detector index a0e5ee510be0d83f3b2a47de62ac8651e56be8a8..0855d67ee4c0fd72fe87854cf6d1fbdfc055f31f 100644 --- a/Inputs/DetectorConfiguration/Riken_65mm.detector +++ b/Inputs/DetectorConfiguration/Riken_65mm.detector @@ -7,7 +7,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% GeneralTarget %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -Target +%Target THICKNESS= 10000 RADIUS= 45 MATERIAL= CD2 @@ -16,7 +16,7 @@ Target Y= 0 Z= 0 -%CryoTarget +CryoTarget THICKNESS= 3000 RADIUS= 45 TEMPERATURE= 26 diff --git a/NPSimulation/src/Target.cc b/NPSimulation/src/Target.cc index 4dc4efa24cc6ad75b734a69f1faeb1f935117ac3..af9f4998b6a4a1c12f0619d30232b73439311d7c 100644 --- a/NPSimulation/src/Target.cc +++ b/NPSimulation/src/Target.cc @@ -555,12 +555,35 @@ void Target::CalculateBeamInteraction( double MeanPosX, double SigmaPosX, double InterCoord = G4ThreeVector(x0, y0, z0); G4EmCalculator emCalculator; - for (G4int i = 0; i < m_TargetNbLayers; i++) + if(m_TargetType) { - G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial); - G4double de = dedx * EffectiveTargetThicknessBeforeInteraction / m_TargetNbLayers; - IncidentBeamEnergy -= de; + for (G4int i = 0; i < m_TargetNbLayers; i++) + { + G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial); + G4double de = dedx * EffectiveTargetThicknessBeforeInteraction / m_TargetNbLayers; + IncidentBeamEnergy -= de; + } + + } + else + { // Windows + for (G4int i = 0; i < m_TargetNbLayers; i++) + { + G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_WindowsMaterial); + G4double de = dedx * m_WindowsThickness * uniform / (cos(AngleIncidentTheta)*m_TargetNbLayers); + IncidentBeamEnergy -= de; + } + + // Target + for (G4int i = 0; i < m_TargetNbLayers; i++) + { + G4double dedx = emCalculator.ComputeTotalDEDX(IncidentBeamEnergy, BeamName, m_TargetMaterial); + G4double de = dedx * EffectiveTargetThicknessBeforeInteraction / m_TargetNbLayers; + IncidentBeamEnergy -= de; + } + } + FinalBeamEnergy=IncidentBeamEnergy; }