whizard is hosted by Hepforge, IPPP Durham

ExampleEEWW: eeww_polarized.sin

File eeww_polarized.sin, 5.0 KB (added by Juergen Reuter, 13 years ago)
Line 
1# $Id: eeww_polarized.sin 3070 2011-03-28 08:09:25Z jr_reuter $
2# Use WHIZARD's initial and final state polarization facilities to
3# examine the angular distributions for all 36 helicity combinations
4# in e+, e- -> W+, W-
5########################################################################
6#
7# Copyright (C) 1999-2011 by
8#     Wolfgang Kilian <kilian@physik.uni-siegen.de>
9#     Thorsten Ohl <ohl@physik.uni-wuerzburg.de>
10#     Juergen Reuter <juergen.reuter@desy.de>
11#     Christian Speckner <Christian.Speckner@physik.uni-freiburg.de>
12#
13# WHIZARD is free software; you can redistribute it and/or modify it
14# under the terms of the GNU General Public License as published by
15# the Free Software Foundation; either version 2, or (at your option)
16# any later version.
17#
18# WHIZARD is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21# GNU General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program; if not, write to the Free Software
25# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26#
27########################################################################
28
29
30# Define and compile the process
31model = SM
32process eeww = "e+", "e-" => "W+", "W-"
33compile
34
35# Define the beams and event count (for simulation)
36sqrts = 200 GeV
37beams = "e+", "e-"
38n_events = 100000
39
40# Tell WHIZARD to retain the W polarization in the generated events
41polarized "W+", "W-"
42
43# Loop over e+ / e- helicity
44scan int hel_ep = (-1, 1) {
45  scan int hel_em = (-1, 1) {
46    # Apply the helicity setup
47    beam_polarization = diagonal_density (hel_ep:1), diagonal_density (hel_em:1)
48
49    # (Re)calculate the integral for each initial state polarization
50    integrate (eeww)
51
52    # Define histograms for all different final state helicies. We
53    # have to automatically generate tags from the initial state
54    # helicites
55    string $hist_mm = sprintf "cta%i_%i_-1_-1" (hel_ep, hel_em)
56    histogram $hist_mm (-1, 1, 0.1) {
57      $title = sprintf "polarization: %i %i -1 -1" (hel_ep, hel_em)
58    }
59    string $hist_ml = sprintf "cta%i_%i_-1_0" (hel_ep, hel_em)
60    histogram $hist_ml (-1, 1, 0.1) {
61      $title = sprintf "polarization: %i %i -1  0" (hel_ep, hel_em)
62    }
63    string $hist_mp = sprintf "cta%i_%i_-1_1" (hel_ep, hel_em)
64    histogram $hist_mp (-1, 1, 0.1) {
65      $title = sprintf "polarization: %i %i -1  1" (hel_ep, hel_em)
66    }
67    string $hist_lm = sprintf "cta%i_%i_0_-1" (hel_ep, hel_em)
68    histogram $hist_lm (-1, 1, 0.1) {
69      $title = sprintf "polarization: %i %i  0 -1" (hel_ep, hel_em)
70    }
71    string $hist_ll = sprintf "cta%i_%i_0_0" (hel_ep, hel_em)
72    histogram $hist_ll (-1, 1, 0.1) {
73      $title = sprintf "polarization: %i %i  0  0" (hel_ep, hel_em)
74    }
75    string $hist_lp = sprintf "cta%i_%i_0_1" (hel_ep, hel_em)
76    histogram $hist_lp (-1, 1, 0.1) {
77      $title = sprintf "polarization: %i %i  0  1" (hel_ep, hel_em)
78    }
79    string $hist_pm = sprintf "cta%i_%i_1_-1" (hel_ep, hel_em)
80    histogram $hist_pm (-1, 1, 0.1) {
81      $title = sprintf "polarization: %i %i  1 -1" (hel_ep, hel_em)
82    }
83    string $hist_pl = sprintf "cta%i_%i_1_0" (hel_ep, hel_em)
84    histogram $hist_pl (-1, 1, 0.1) {
85      $title = sprintf "polarization: %i %i  1  0" (hel_ep, hel_em)
86    }
87    string $hist_pp = sprintf "cta%i_%i_1_1" (hel_ep, hel_em)
88    histogram $hist_pp (-1, 1, 0.1) {
89      $title = sprintf "polarization: %i %i  1  1" (hel_ep, hel_em)
90    }
91
92    # The analysis setup fills the different histograms
93    analysis =
94      if (all Hel == -1 ["W+"] and all Hel == -1 ["W-"] ) then
95        record $hist_mm (eval cos (Theta) ["W+"])
96      endif; if (all Hel == -1 ["W+"] and all Hel ==  0 ["W-"] ) then
97        record $hist_ml (eval cos (Theta) ["W+"])
98      endif; if (all Hel == -1 ["W+"] and all Hel ==  1 ["W-"] ) then
99        record $hist_mp (eval cos (Theta) ["W+"])
100      endif; if (all Hel ==  0 ["W+"] and all Hel == -1 ["W-"] ) then
101        record $hist_lm (eval cos (Theta) ["W+"])
102      endif; if (all Hel ==  0 ["W+"] and all Hel ==  0 ["W-"] ) then
103        record $hist_ll (eval cos (Theta) ["W+"])
104      endif; if (all Hel ==  0 ["W+"] and all Hel ==  1 ["W-"] ) then
105        record $hist_lp (eval cos (Theta) ["W+"])
106      endif; if (all Hel ==  1 ["W+"] and all Hel == -1 ["W-"] ) then
107        record $hist_pm (eval cos (Theta) ["W+"])
108      endif; if (all Hel ==  1 ["W+"] and all Hel ==  0 ["W-"] ) then
109        record $hist_pl (eval cos (Theta) ["W+"])
110      endif; if (all Hel ==  1 ["W+"] and all Hel ==  1 ["W-"] ) then
111        record $hist_pp (eval cos (Theta) ["W+"])
112      endif
113
114    # Generate events (keep the helicity information). As this takes
115    # some time, we request status information.
116    simulate (eeww) {
117      ?polarized_events = true
118      checkpoint = 10000
119    }
120  }
121}
122
123# Write out the generated histograms in eeww_polarized.ps / eeww_polarized.pdf
124compile_analysis { $out_file = "eeww_polarized.dat" }
125