Skip to content

Commit

Permalink
update energy thresholds for target dark brem to 8GeV
Browse files Browse the repository at this point in the history
  • Loading branch information
tomeichlersmith committed Oct 2, 2023
1 parent 7f3d719 commit ad744a2
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions Biasing/python/target.py
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ def gamma_mumu( detector, generator ) :

return sim

def dark_brem( ap_mass , lhe, detector ) :
def dark_brem( ap_mass , lhe, detector) :
"""Example configuration for producing dark brem interactions in the target.
This configures the sim to fire a 4 GeV electron upstream of the
Expand Down Expand Up @@ -214,26 +214,29 @@ def dark_brem( ap_mass , lhe, detector ) :

sim.description = "One e- fired far upstream with Dark Brem turned on and biased up in target"
sim.setDetector( detector , True )
sim.generators.append( generators.single_4gev_e_upstream_tagger() )
sim.generators.append( generators.single_8gev_e_upstream_tagger() )
sim.beamSpotSmear = [ 20., 80., 0. ] #mm

#Activiate dark bremming with a certain A' mass and LHE library
from LDMX.SimCore import dark_brem
db_model = dark_brem.G4DarkBreMModel(lhe)
db_model.threshold = 2. #GeV - minimum energy electron needs to have to dark brem
db_model.threshold = 4. #GeV - minimum energy electron needs to have to dark brem
db_model.epsilon = 0.01 #decrease epsilon from one to help with Geant4 biasing calculations
sim.dark_brem.activate( ap_mass , db_model )

import math
mass_power = max(math.log10(sim.dark_brem.ap_mass), 2.)

#Biasing dark brem up inside of the target
sim.biasing_operators = [
bias_operators.DarkBrem.target(sim.dark_brem.ap_mass**2 / db_model.epsilon**2)
bias_operators.DarkBrem.target(sim.dark_brem.ap_mass**mass_power / db_model.epsilon**2)
]

sim.actions.extend([
#make sure electron reaches target with 3.5GeV
filters.TaggerVetoFilter(3500.),
filters.TaggerVetoFilter(7000.),
#make sure dark brem occurs in the target where A' has at least 2GeV
filters.TargetDarkBremFilter(2000.),
filters.TargetDarkBremFilter(4000.),
#keep all prodcuts of dark brem(A' and recoil electron)
util.TrackProcessFilter.dark_brem()
])
Expand Down

0 comments on commit ad744a2

Please sign in to comment.