00001
00002
00003
00004
00005
00006 #ifndef TRANSITION_H_
00007 #define TRANSITION_H_
00008
00009
00010 class transition
00011 {
00012 public:
00013 transition()
00014 {
00015 Junk();
00016 }
00017
00018 quantumState *Lo, *Hi;
00019 emission *Emis;
00020 collision Coll;
00021
00022
00023
00024
00026 realnum WLAng;
00027
00029 realnum EnergyK;
00030
00032 realnum EnergyErg;
00033
00035 realnum EnergyWN;
00036
00041 long ipCont;
00042
00046 void Junk( void );
00047
00051 void Zero( void );
00052
00054 void outline( double nonScatteredFraction, bool lgDoChecks );
00055
00058 void outline_resonance( );
00059
00060 };
00061
00074 void PutLine(const transition *t, const char *chComment);
00075
00081 void PutLine(const transition *t, const char *chComment, const char *chLabel);
00082
00086 double TexcLine(const transition *t);
00087
00091 void DumpLine(const transition *t);
00092
00096 double emit_frac(const transition *t);
00097
00101 void chIonLbl(char*, const transition *t);
00102
00107 char* chLineLbl(const transition *t);
00108
00113 void PutCS(double cs,
00114 transition * t);
00115
00121 void GenerateTransitionConfiguration( const transition *t, char *chComment );
00122
00126 double OccupationNumberLine(const transition *t);
00127
00131 void PutExtra(double Extra);
00132
00137 void LineConvRate2CS( transition * t , realnum rate );
00138
00143 inline bool lgTauGood( transition* t )
00144 {
00145
00146 return ( iteration == 1 ||
00147
00148 t->Emis->TauIn <= 0. ||
00149
00150 t->Emis->TauIn < t->Emis->TauTot );
00151 }
00152
00156 void MakeCS(transition * t );
00157
00160 emission *AddLine2Stack( bool lgRadiativeTrans );
00161 emission *AddLine2Stack( realnum Aul, transition *trans );
00162
00163 #endif // _TRANSITION_H_