~ubuntu-branches/ubuntu/trusty/horae/trusty

« back to all changes in this revision

Viewing changes to hephaestus_parts/ion.pl

  • Committer: Bazaar Package Importer
  • Author(s): Carlo Segre
  • Date: 2008-02-23 23:13:02 UTC
  • mfrom: (2.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080223231302-mnyyxs3icvrus4ke
Tags: 066-3
Apply patch to athena_parts/misc.pl for compatibility with 
perl-tk 804.28.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
  $data{ion_energy_label} = $frm -> Label(-text=>'Photon energy:', @label_args)
44
44
    -> pack(-side=>'left');
45
45
  my $entry = $frm -> Entry(-textvariable=>\$data{ion_energy}, -width=>6,
 
46
                            -font=>$config{fonts}{smfixed},
46
47
                            -validate=>'key', -validatecommand=>[\&set_variable, 'ion_energy'])
47
48
    -> pack(-side=>'left', -padx=>4);
48
49
 
51
52
    -> pack(-side=>'top');
52
53
 
53
54
  $frm -> Radiobutton(-text=>"3.3 cm Lytle Detector",
 
55
                      -font=>$config{fonts}{small},
54
56
                      -command=>[\&get_ion_data, 0],
55
57
                      -variable=>\$data{ion_length},
56
58
                      -value=>3.3)
57
59
    -> grid(-column=>0, -row=>0, -sticky=>'w', -columnspan=>2);
58
60
  $frm -> Radiobutton(-text=>"6.6 cm Lytle Detector",
 
61
                      -font=>$config{fonts}{small},
59
62
                      -command=>[\&get_ion_data, 0],
60
63
                      -variable=>\$data{ion_length},
61
64
                      -value=>6.6)
62
65
    -> grid(-column=>0, -row=>1, -sticky=>'w', -columnspan=>2);
63
66
  $frm -> Radiobutton(-text=>"5 cm",
 
67
                      -font=>$config{fonts}{small},
64
68
                      -command=>[\&get_ion_data, 0],
65
69
                      -variable=>\$data{ion_length},
66
70
                      -value=>5)
67
71
    -> grid(-column=>0, -row=>2, -sticky=>'w', -columnspan=>2);
68
72
  $frm -> Radiobutton(-text=>"10 cm",
 
73
                      -font=>$config{fonts}{small},
69
74
                      -command=>[\&get_ion_data, 0],
70
75
                      -variable=>\$data{ion_length},
71
76
                      -value=>10)
72
77
    -> grid(-column=>0, -row=>2, -sticky=>'w', -columnspan=>2);
73
78
  $frm -> Radiobutton(-text=>"15 cm",
 
79
                      -font=>$config{fonts}{small},
74
80
                      -command=>[\&get_ion_data, 0],
75
81
                      -variable=>\$data{ion_length},
76
82
                      -value=>15)
77
83
    -> grid(-column=>0, -row=>3, -sticky=>'w', -columnspan=>2);
78
84
  $frm -> Radiobutton(-text=>"30 cm",
 
85
                      -font=>$config{fonts}{small},
79
86
                      -command=>[\&get_ion_data, 0],
80
87
                      -variable=>\$data{ion_length},
81
88
                      -value=>30)
82
89
    -> grid(-column=>0, -row=>4, -sticky=>'w', -columnspan=>2);
83
90
  $frm -> Radiobutton(-text=>"45 cm",
 
91
                      -font=>$config{fonts}{small},
84
92
                      -command=>[\&get_ion_data, 0],
85
93
                      -variable=>\$data{ion_length},
86
94
                      -value=>45)
87
95
    -> grid(-column=>0, -row=>5, -sticky=>'w', -columnspan=>2);
88
96
  $frm -> Radiobutton(-text=>"60 cm",
 
97
                      -font=>$config{fonts}{small},
89
98
                      -command=>[\&get_ion_data, 0],
90
99
                      -variable=>\$data{ion_length},
91
100
                      -value=>60)
92
101
    -> grid(-column=>0, -row=>6, -sticky=>'w', -columnspan=>2);
93
102
  $frm -> Radiobutton(-text=>"Choose your own",
 
103
                      -font=>$config{fonts}{small},
94
104
                      -command=>[\&get_ion_data, 0],
95
105
                      -variable=>\$data{ion_length},
96
106
                      -value=>0)
99
109
                                        -state=>'disabled',
100
110
                                        (($Tk::VERSION > 804) ? (-disabledbackground=>$bgcolor) : ()),
101
111
                                        -foreground=>'grey50',
 
112
                                        -font=>$config{fonts}{smfixed},
102
113
                                        -textvariable=>\$data{ion_userlength},
103
114
                                        -validate=>'key',
104
115
                                        -validatecommand=>\&set_variable,)
105
116
    -> grid(-column=>0, -row=>8, -sticky=>'e');
106
 
  $data{ion_user_label} = $frm -> Label(-text=>'cm', -foreground=>'grey50')
 
117
  $data{ion_user_label} = $frm -> Label(-text       => 'cm',
 
118
                                        -font       => $config{fonts}{small},
 
119
                                        -foreground => 'grey50')
107
120
    -> grid(-column=>1, -row=>8, -sticky=>'w');
108
121
 
109
122
 
110
 
  $right -> Label(-text=>"Primary Gas ")
 
123
  $right -> Label(-text=>"Primary Gas ", -font=>$config{fonts}{smbold},)
111
124
    -> grid(-column=>0, -row=>0,);
112
125
  my $be = $right -> Optionmenu(-options=> [qw(N2 He Ne Ar Kr Xe)],
 
126
                                -font=>$config{fonts}{smbold},
113
127
                                -command => [\&get_ion_data, 0],
114
128
                                -variable => \$data{ion_gas1},
115
129
                                -borderwidth => 1,)
121
135
                           -length       => 250,
122
136
                           #-foreground  => '#640096',
123
137
                           -variable     => \$data{ion_frac1},
 
138
                           -font         => $config{fonts}{small},
124
139
                           -command      => [\&get_ion_data, 1])
125
140
    -> grid(-column=>0, -columnspan=>2, -row=>1);
126
141
  #BindMouseWheel($sc);
127
142
 
128
 
  $right -> Label(-text=>"Secondary Gas ")
 
143
  $right -> Label(-text=>"Secondary Gas ", -font=>$config{fonts}{smbold},)
129
144
    -> grid(-column=>3, -row=>0,);
130
 
  $be = $right -> Optionmenu(-options=> [qw(He N2 Ne Ar Kr Xe)],
131
 
                             -command => [\&get_ion_data, 0],
132
 
                             -variable => \$data{ion_gas2},
 
145
  $be = $right -> Optionmenu(-options     => [qw(He N2 Ne Ar Kr Xe)],
 
146
                             -command     => [\&get_ion_data, 0],
 
147
                             -font        =>$config{fonts}{smbold},
 
148
                             -variable    => \$data{ion_gas2},
133
149
                             -borderwidth => 1,)
134
150
    -> grid(-column=>4, -row=>0, -sticky=>'w', -padx=>4);
135
151
 
150
166
                        -length       => 250,
151
167
                        #-foreground  => 'darkgreen',
152
168
                        -variable     => \$data{ion_frac2},
 
169
                        -font         => $config{fonts}{small},
153
170
                        -command      => [\&get_ion_data, 2])
154
171
    -> grid(-column=>3, -columnspan=>2, -row=>1);
155
172
  #BindMouseWheel($sc);
156
173
 
157
 
  $right -> Label(-text=>'Pressure (Torr)')
 
174
  $right -> Label(-text=>'Pressure (Torr)', -font=>$config{fonts}{smbold}, )
158
175
     -> grid(-column=>5, -row=>0, -sticky=>'e', -padx=>4);
159
176
  $right -> Scale(-from         => 2300,
160
177
                  -to           => 0,
163
180
                  -length       => 250,
164
181
                  #-foreground  => 'darkgreen',
165
182
                  -variable     => \$data{ion_pressure},
 
183
                  -font=>$config{fonts}{small},
166
184
                  -command      => [\&get_ion_data, 2]
167
185
                 )
168
186
    -> grid(-column=>5, -row=>1);
170
188
 
171
189
 
172
190
  $frame -> Label(-text=>'Rules of thumb: 10% absorption in I0; 70% absorption in It or If  (1 Atm = 760 Torr)',
173
 
                  -font=>'Arial 10')
 
191
                  -font=>$config{fonts}{small})
174
192
    -> pack(-side=>'bottom', -anchor=>'center', -pady=>8);
175
193
 
176
194
  $frm = $frame -> LabFrame(-label=>"Photon flux",
183
201
                   -minvalue => 0,
184
202
                   -width => 4,
185
203
                   -textvariable => \$data{ion_gain},
 
204
                   -font=>$config{fonts}{smfixed},
186
205
                   -command => [\&get_ion_data, 0],
187
206
                   -browsecmd => [\&get_ion_data, 0]
188
207
                   )
190
209
  $frm -> Label(-text=>" with ", @label_args)
191
210
    -> pack(-side=>'left');
192
211
  my $e = $frm -> Entry(-width => 7,
 
212
                        -font=>$config{fonts}{smfixed},
193
213
                        -textvariable=>\$data{ion_voltage},
194
214
                        -validate=>'key',
195
215
                        -validatecommand=>\&set_variable,)
199
219
  $frm -> Label(-text=>" volts gives ", @label_args)
200
220
    -> pack(-side=>'left');
201
221
  $frm -> Label(-width => 11,
 
222
                -font=>$config{fonts}{smfixed},
202
223
                -textvariable=>\$data{ion_flux})
203
224
    -> pack(-side=>'left');
204
225
  $frm -> Label(-text=>"photons/second", @label_args)
210
231
  $bottom -> Label(@label_args, -text=>"Percentage absorbed:")
211
232
    -> pack(-side=>'left');
212
233
  $bottom -> Label(-textvariable=>\$data{ion_absorbed},
 
234
                   -font=>$config{fonts}{smfixed},
213
235
                   -relief=>'groove',
214
236
                   -width=>10)
215
237
    -> pack(-side=>'left', -padx=>4);
269
291
    $g = 'N' if ($g eq 'N2');
270
292
    $dens += $data{"ion_frac$i"} * $density{ucfirst(get_name($g))} / 100;
271
293
    my $this;
272
 
    my $one_minus_g = Xray::Absorption->get_one_minus_g($g, $data{ion_energy});
 
294
    my $one_minus_g = 1; #Xray::Absorption->get_one_minus_g($g, $data{ion_energy});
273
295
    #print "$g    $one_minus_g\n";
274
296
    if ((lc($data{resource}) eq "henke") or (lc($data{resource}) eq "cl")) {
275
297
      $this = Xray::Absorption -> cross_section($g, $energy, 'total');