1
2
3
4
5
6 package org.astrogrid.intensity;
7
8 import org.astrogrid.tools.util.TypeSafeEnumerator;
9
10 /***
11 * Intensities only make sense if we know the passband of the filters (say)
12 * used to measure the intensity. Some may be taken as a simple frequency
13 * range; later we may need to expand this to include different shapes
14 *
15 * This is a bit nuaghtily subclassed from TypeSafeEnumerator, as there are
16 * lots of standard passbands, and TypeSafeEnumerator has useful methods for
17 * picking by name, resolving, etc. <em>However</em> it shoudl be possible
18 * to create new Passbands for specific purposes.
19 *
20 * @author M Hill
21 */
22
23
24 public class Passband extends TypeSafeEnumerator
25 {
26 private int freqMinHz = 0;
27 private int freqMaxHz = 0;
28
29
30
31 public static Passband U = makeFromFreqDelta("U", (int)8.4735008*10^14,(int)6.7059927*10^13);
32 public static Passband B = makeFromFreqDelta("B", (int)6.5801681*10^14,(int)6.7059927*10^13);
33 public static Passband V = makeFromFreqDelta("V", (int)5.6119891*10^14,(int)6.7059927*10^13);
34 public static Passband R = makeFromFreqDelta("R", (int)4.5827938*10^14,(int)6.7059927*10^13);
35 public static Passband I = makeFromFreqDelta("I", (int)3.5125068*10^14,(int)6.7059927*10^13);
36 public static Passband J = makeFromFreqDelta("J", (int)2.4573152*10^14,(int)6.7059927*10^13);
37 public static Passband H = makeFromFreqDelta("H", (int)1.8392175*10^14,(int)6.7059927*10^13);
38 public static Passband K = makeFromFreqDelta("K", (int)1.3689153*10^14,(int)6.7059927*10^13);
39
40
41
42
43
44
45
46
47
48 public Passband(String givenName, int givenMinFreqHz, int givenMaxFreqHz)
49 {
50 super(givenName);
51
52 this.freqMinHz = givenMinFreqHz;
53 this.freqMaxHz = givenMaxFreqHz;
54 }
55
56 /***
57 * Convenient factory method to create from wavelengths instead of
58 * frequencies
59 */
60 public static final Passband makeFromWavelengthMeters(String givenName, double minWavelengthMeters, double maxWavelengthMeters)
61 {
62 return new Passband( givenName,
63 (int) (1/minWavelengthMeters),
64 (int) (1/maxWavelengthMeters));
65 }
66
67 /***
68 * Convenient factory method to create from frequency and delta (in this case
69 * the delta is both + and - from the effective freq, ie min = eff-delta, max=eff+delta)
70 */
71 public static final Passband makeFromFreqDelta(String givenName, int effectiveFreqHz, int deltaFreqHz)
72 {
73 return new Passband( givenName,
74 effectiveFreqHz-deltaFreqHz,
75 effectiveFreqHz+deltaFreqHz);
76 }
77
78
79
80
81
82
83
84
85
86
87
88
89
90 public double getCentralFrequency()
91 {
92 return (freqMaxHz + freqMinHz)/2;
93 }
94 }
95
96
97
98
99
100
101
102
103
104