#ifndef __IoHerald__ #define __IoHerald__ #include #include #include using namespace std; class HeraldEvent { private: public: HeraldEvent(); ~HeraldEvent(); unsigned long long Id; double Theta, CosTheta2, Phi, Ra, Dec, Ra0; double ObsEnergy, Energy, SRef, SRefw, SRefg, SRefwg; double ErrEnergy, ErrSRef; unsigned int GPS, UTC; int IsT5; ENUMARRAY Array; ENUMSORTOPTION SortOption; bool operator < (const HeraldEvent & right) const { if(SortOption == SREF) return (SRef < right.SRef); if(SortOption == SREFW) return (SRefw < right.SRefw); if(SortOption == SREFG) return (SRefg < right.SRefg); if(SortOption == SREFWG) return (SRefwg < right.SRefwg); return (Theta < right.Theta); } bool operator <= (const HeraldEvent & right) const { if(SortOption == SREF) return (SRef <= right.SRef); if(SortOption == SREFW) return (SRefw <= right.SRefw); if(SortOption == SREFG) return (SRefg <= right.SRefg); if(SortOption == SREFWG) return (SRefwg <= right.SRefwg); return (Theta <= right.Theta); } bool operator > (const HeraldEvent & right) const { if(SortOption == SREF) return (SRef > right.SRef); if(SortOption == SREFW) return (SRefw > right.SRefw); if(SortOption == SREFG) return (SRefg > right.SRefg); if(SortOption == SREFWG) return (SRefwg > right.SRefwg); return (Theta > right.Theta); } bool operator >= (const HeraldEvent & right) const { if(SortOption == SREF) return (SRef >= right.SRef); if(SortOption == SREFW) return (SRefw >= right.SRefw); if(SortOption == SREFG) return (SRefg >= right.SRefg); if(SortOption == SREFWG) return (SRefwg >= right.SRefwg); return (Theta >= right.Theta); } bool operator == (const HeraldEvent & right) const { if(SortOption == SREF) return (SRef == right.SRef); if(SortOption == SREFW) return (SRefw == right.SRefw); if(SortOption == SREFG) return (SRefg == right.SRefg); if(SortOption == SREFWG) return (SRefwg == right.SRefwg); return (Theta == right.Theta); } }; class IoHerald { private: public: IoHerald(string fn, double thetaMax=0.0); ~IoHerald(); vector Events; unsigned int NEvents; static int QualityWeatherData; // static bool WeatherCorrection, GMFCorrection; static unsigned int UTCStart, UTCEnd; static int T5; static ENUMARRAY Array; static bool UseWeatherCorrections, UseGMFCorrections, UseCICEnergyDependence; }; void Message(ENUMMESS,char const *, char const *, ...); void StartCompt(char const *,...); void PrintCompt(int, int); void EndCompt(); #endif