Define and compile the process {{{ model = SM process eeww = "e+", "e-" => "W+", "W-" compile }}} Define the beams and event count (for simulation) {{{ sqrts = 200 GeV beams = "e+", "e-" n_events = 100000 }}} Tell WHIZARD to retain the W polarization in the generated events {{{ polarized "W+", "W-" }}} Loop over e+ / e- helicity (explanations as comments inside the code) {{{ scan int hel_ep = (-1, 1) { scan int hel_em = (-1, 1) { # Apply the helicity setup beam_polarization = diagonal_density (hel_ep:1), diagonal_density (hel_em:1) # (Re)calculate the integral for each initial state polarization integrate (eeww) # Define histograms for all different final state helicies. We # have to automatically generate tags from the initial state # helicites string $hist_mm = sprintf "cta%i_%i_-1_-1" (hel_ep, hel_em) histogram $hist_mm (-1, 1, 0.1) { $title = sprintf "polarization: %i %i -1 -1" (hel_ep, hel_em) } string $hist_ml = sprintf "cta%i_%i_-1_0" (hel_ep, hel_em) histogram $hist_ml (-1, 1, 0.1) { $title = sprintf "polarization: %i %i -1 0" (hel_ep, hel_em) } string $hist_mp = sprintf "cta%i_%i_-1_1" (hel_ep, hel_em) histogram $hist_mp (-1, 1, 0.1) { $title = sprintf "polarization: %i %i -1 1" (hel_ep, hel_em) } string $hist_lm = sprintf "cta%i_%i_0_-1" (hel_ep, hel_em) histogram $hist_lm (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 0 -1" (hel_ep, hel_em) } string $hist_ll = sprintf "cta%i_%i_0_0" (hel_ep, hel_em) histogram $hist_ll (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 0 0" (hel_ep, hel_em) } string $hist_lp = sprintf "cta%i_%i_0_1" (hel_ep, hel_em) histogram $hist_lp (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 0 1" (hel_ep, hel_em) } string $hist_pm = sprintf "cta%i_%i_1_-1" (hel_ep, hel_em) histogram $hist_pm (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 1 -1" (hel_ep, hel_em) } string $hist_pl = sprintf "cta%i_%i_1_0" (hel_ep, hel_em) histogram $hist_pl (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 1 0" (hel_ep, hel_em) } string $hist_pp = sprintf "cta%i_%i_1_1" (hel_ep, hel_em) histogram $hist_pp (-1, 1, 0.1) { $title = sprintf "polarization: %i %i 1 1" (hel_ep, hel_em) } # The analysis setup fills the different histograms analysis = if (all Hel == -1 ["W+"] and all Hel == -1 ["W-"] ) then record $hist_mm (eval cos (Theta) ["W+"]) endif; if (all Hel == -1 ["W+"] and all Hel == 0 ["W-"] ) then record $hist_ml (eval cos (Theta) ["W+"]) endif; if (all Hel == -1 ["W+"] and all Hel == 1 ["W-"] ) then record $hist_mp (eval cos (Theta) ["W+"]) endif; if (all Hel == 0 ["W+"] and all Hel == -1 ["W-"] ) then record $hist_lm (eval cos (Theta) ["W+"]) endif; if (all Hel == 0 ["W+"] and all Hel == 0 ["W-"] ) then record $hist_ll (eval cos (Theta) ["W+"]) endif; if (all Hel == 0 ["W+"] and all Hel == 1 ["W-"] ) then record $hist_lp (eval cos (Theta) ["W+"]) endif; if (all Hel == 1 ["W+"] and all Hel == -1 ["W-"] ) then record $hist_pm (eval cos (Theta) ["W+"]) endif; if (all Hel == 1 ["W+"] and all Hel == 0 ["W-"] ) then record $hist_pl (eval cos (Theta) ["W+"]) endif; if (all Hel == 1 ["W+"] and all Hel == 1 ["W-"] ) then record $hist_pp (eval cos (Theta) ["W+"]) endif # Generate events (keep the helicity information). As this takes # some time, we request status information. simulate (eeww) { ?polarized_events = true checkpoint = 10000 } } } }}} Write out the generated histograms in eeww_polarized.ps / eeww_polarized.pdf {{{ compile_analysis { $out_file = "eeww_polarized.dat" } }}}