]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RALICE/AliTimestamp.h
The check over the symbolic names allows partial PHOS configurations (only some modul...
[u/mrichter/AliRoot.git] / RALICE / AliTimestamp.h
index a931d73fccd341b6a35672fede761621a62cefc8..d3353c1bb38c132e646e72287483839993cdfc3f 100644 (file)
@@ -5,6 +5,8 @@
 
 // $Id$
 
+#include <math.h>
+
 #include "TTimeStamp.h"
 #include "TString.h"
 
@@ -15,13 +17,19 @@ class AliTimestamp : public TTimeStamp
   AliTimestamp(TTimeStamp& t);                  // Constructor
   virtual ~AliTimestamp();                      // Destructor
   AliTimestamp(const AliTimestamp& t);          // Copy constructor
-  void Date(Int_t mode=3);                      // Print date/time info
+  void Date(Int_t mode=3,Double_t offset=0);    // Print date/time info
   Double_t GetJD(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns) const; // Julian Date from input args.
   Double_t GetMJD(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns) const;// Modified JD from input args.
   Double_t GetTJD(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns) const;// Truncated JD from input args.
   Double_t GetJE(Double_t date,TString mode="jd") const; // Julian Epoch corresponding to specified Julian Date
+  Double_t GetBE(Double_t date,TString mode="jd") const; // Besselian Epoch corresponding to specified Julian Date
   void Convert(Double_t date,Int_t& days,Int_t& secs,Int_t& ns) const;// Convert frac. day count into days, secs and ns 
   Double_t Convert(Int_t days,Int_t secs,Int_t ns) const;             // Convert days, secs and ns into frac. day count
+  void Convert(Double_t h,Int_t& hh,Int_t& mm,Int_t& ss,Int_t& ns,Int_t& ps) const;// Convert frac. hour count
+  Double_t Convert(Int_t hh,Int_t mm,Int_t ss,Int_t ns,Int_t ps) const; // Convert hh:mm:ss:ns:ps into frac. hour
+  void Convert(Double_t h,Int_t& hh,Int_t& mm,Double_t& ss) const;// Convert frac. hour count
+  Double_t Convert(Int_t hh,Int_t mm,Double_t ss) const;          // Convert hh:mm:ss.s into frac. hours
+  void PrintTime(Double_t h,Int_t ndig=1) const;// Print time in hh:mm:ss.sss format
   void GetMJD(Int_t& mjd,Int_t& sec,Int_t& ns); // Provide corresponding Modified Julian Date and time
   Double_t GetMJD();                            // Provide corresponding Modified Julian Date in fractional days
   void GetTJD(Int_t& mjd,Int_t& sec,Int_t& ns); // Provide corresponding Truncated Julian Date and time
@@ -29,6 +37,10 @@ class AliTimestamp : public TTimeStamp
   void GetJD(Int_t& jd,Int_t& sec,Int_t& ns);   // Provide corresponding Julian Date and time
   Double_t GetJD();                             // Provide corresponding Julian Date in fractional days
   Double_t GetJE();                             // Provide corresponding Julian Epoch
+  Double_t GetBE();                             // Provide corresponding Besselian Epoch
+  Double_t GetJD(Double_t e,TString mode="J") const;  // Provide fractional Julian Date from Epoch
+  Double_t GetMJD(Double_t e,TString mode="J") const; // Provide fractional Modified Julian Date from Epoch
+  Double_t GetTJD(Double_t e,TString mode="J") const; // Provide fractional Truncated Julian Date from Epoch
   void SetMJD(Int_t mjd,Int_t sec,Int_t ns,Int_t ps=0); // Set Modified Julian Date and time
   void SetMJD(Double_t mjd);                            // Set Modified Julian Date and time
   void SetJD(Int_t jd,Int_t sec,Int_t ns,Int_t ps=0);   // Set Julian Date and time
@@ -41,10 +53,26 @@ class AliTimestamp : public TTimeStamp
   Int_t GetPs() const;                                  // Provide remaining fractional number of ns in picoseconds
   using TTimeStamp::Add;
   void Add(Int_t d,Int_t s,Int_t ns,Int_t ps=0);        // Add (or subtract) a certain time difference
+  void Add(Double_t hours);                             // Add (or subtract) a certain time difference
   Int_t GetDifference(AliTimestamp* t,Int_t& days,Int_t& sec,Int_t& ns,Int_t& ps); // Provide time difference
   Int_t GetDifference(AliTimestamp& t,Int_t& days,Int_t& sec,Int_t& ns,Int_t& ps); // Provide time difference
   Double_t GetDifference(AliTimestamp* t,TString u,Int_t mode=1); // Provide time diff. in specified units
   Double_t GetDifference(AliTimestamp& t,TString u,Int_t mode=1); // Provide time diff. in specified units
+  void SetUT(Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns=0,Int_t ps=0); // Set specified UT
+  void SetUT(Int_t y,Int_t d,Int_t s,Int_t ns=0,Int_t ps=0); // Set UT based on elapsed days, secs etc...
+  void GetUT(Int_t& hh,Int_t& mm,Int_t& ss,Int_t& ns,Int_t& ps); // Provide corresponding UT
+  Double_t GetUT(); // Provide corresponding UT in fractional hours
+  void GetGMST(Int_t& hh,Int_t& mm,Int_t& ss,Int_t& ns,Int_t& ps); // Corresponding Greenwich Mean Sidereal Time (GMST)
+  Double_t GetGMST(); // Provide corresponding Greenwich Mean Sidereal Time (GMST) in fractional hours
+  Double_t GetGAST(); // Provide corresponding Greenwich Apparent Sidereal Time (GAST) in fractional hours
+  Double_t GetLT(Double_t offset);  // Provide corresponding Local Time (LT) in fractional hours
+  Double_t GetLMST(Double_t offset); // Provide corresponding Local Mean Sidereal Time (LMST) in fractional hours
+  Double_t GetLAST(Double_t offset); // Provide corresponding Local Apparent Sidereal Time (LAST) in fractional hours
+  void SetLT(Double_t dt,Int_t y,Int_t m,Int_t d,Int_t hh,Int_t mm,Int_t ss,Int_t ns=0,Int_t ps=0); // Set data according to LT
+  void SetLT(Double_t dt,Int_t y,Int_t d,Int_t s,Int_t ns=0,Int_t ps=0); // Set data according to LT based on elapsed days, secs etc...
+  Double_t Almanac(Double_t* dpsi=0,Double_t* deps=0,Double_t* eps=0); // Provide astronomical observables
+  void SetEpoch(Double_t e,TString mode); // Set time parameters according to the specified epoch
+  Double_t GetEpoch(TString mode);        // Provide the requested epoch
 
  protected:
   Int_t fMJD;  // Modified Julian Date
@@ -57,6 +85,6 @@ class AliTimestamp : public TTimeStamp
   Int_t fCalcs;      // The TTimeStamp seconds counter value at Julian parameter calculation
   Int_t fCalcns;     // The TTimeStamp nanoseconds counter value at Julian parameter calculation
 
- ClassDef(AliTimestamp,4) // Handling of timestamps for (astro)particle physics research.
+ ClassDef(AliTimestamp,11) // Handling of timestamps for (astro)particle physics research.
 };
 #endif