00001
00002
00004 #ifndef __Streams__
00005 #define __Streams__
00006
00007 #include "TimeDelay.h"
00008 #include "Sample.h"
00009 #include "DetConst.h"
00010
00011 using namespace std;
00012
00018 class Streams : public Sample {
00019
00020 public:
00021
00032 Streams(const string aName, const int aVerbose=0);
00033
00037 virtual ~Streams(void);
00047 bool SetName(const string aNewName);
00048
00052 inline string GetName(void){ return Name; };
00053
00057 inline string GetNamePrefix(void){ return NamePrefix; };
00058
00062 inline string GetNameSuffix(void){ return NameSuffix; };
00063
00068 inline string GetNameSuffixUnderScore(void){ return NameSuffixUnderScore; };
00069
00073 inline string GetNameConv(void){ return NamePrefix+"-"+NameSuffixUnderScore; };
00074
00082 inline string GetDirectory(const string aOutDir="."){
00083 return aOutDir+"/"+Name;
00084 };
00085
00090 inline int GetDetIndex(void){ return DetIndex; };
00091
00096 inline string GetDetPrefix(void){ if(DetIndex<0) return ""; return DET_PREFIX[DetIndex]; };
00097
00108 void GetDetAMResponse(double &fplus, double &fcross, const double ra, const double dec, const double psi, const double gmst);
00109
00118 inline double GetLocalTime(const double aRa, const double aDec, const double aGeocentricTime){
00119 if(DetIndex<0) return -1.0;
00120 else return aGeocentricTime+TimeDelayFromEarthCenter(DetLoc, aRa, aDec, aGeocentricTime);
00121 };
00122
00123 private:
00124
00125
00126 int verbose;
00127 string Name;
00128 string NamePrefix;
00129 string NameSuffix;
00130 string NameSuffixUnderScore;
00131
00132
00133 void MakeLVDetector(void);
00134 int DetIndex;
00135 void ComputeDetectorResponse(void);
00136 double Response[3][3];
00137 double DetLoc[3];
00138
00139 ClassDef(Streams,0)
00140 };
00141
00142 #endif
00143
00144