View Javadoc

1   /*
2    * $Id Passband.java $
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  //   private String name = "";
29     
30     //there are some preset passbands which I take it are semi-standard?
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     //there are also all kinds of other ones but I'm ignoring these for the moment
41     //Passband Bj  = makeFromFreqDelta("Bj",(int)0.0000000*10^14,(int)0.0000000*10^13);
42     //Passband g   = makeFromFreqDelta("g", (int)0.0000000*10^14,(int)0.0000000*10^13);
43     //Passband r   = makeFromFreqDelta("r", (int)0.0000000*10^14,(int)0.0000000*10^13);
44     //Passband i   = makeFromFreqDelta("i", (int)0.0000000*10^14,(int)0.0000000*10^13);
45     //Passband Rc  = makeFromFreqDelta("Rc",(int)0.0000000*10^14,(int)0.0000000*10^13);
46     //Passband Ic  = makeFromFreqDelta("Ic",(int)0.0000000*10^14,(int)0.0000000*10^13);
47  
48     public Passband(String givenName, int givenMinFreqHz, int givenMaxFreqHz)
49     {
50        super(givenName);
51  //      this.name = givenName;
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     public String toString()
80     {
81        return name;
82     }
83  
84     public String getName()
85     {
86        return name;
87     }
88      */
89     
90     public double getCentralFrequency()
91     {
92        return (freqMaxHz + freqMinHz)/2;
93     }
94  }
95  
96  /*
97  $Log: Passband.java,v $
98  Revision 1.1.1.1  2003/08/25 18:36:27  mch
99  Reimported to fit It02 source structure
100 
101 Revision 1.1  2003/06/26 19:17:26  mch
102 new classes for handling passbands, etc
103 
104 */