]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RALICE/AliTimestamp.h
09-feb-2005 NvE New class AliTimestamp introduced to support timestamp information for
[u/mrichter/AliRoot.git] / RALICE / AliTimestamp.h
1 #ifndef ALITIMESTAMP_H
2 #define ALITIMESTAMP_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id$
7
8 #include "TTimeStamp.h"
9 #include "TString.h"
10
11 class AliTimestamp : public TTimeStamp
12 {
13  public:
14   AliTimestamp();                               // Default constructor
15   AliTimestamp(TTimeStamp& t);                  // Constructor
16   virtual ~AliTimestamp();                      // Destructor
17   AliTimestamp(const AliTimestamp& t);          // Copy constructor
18   void Date(Int_t mode=3);                      // Print date/time info
19   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.
20   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.
21   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.
22   Double_t GetJE(Double_t date,TString mode="jd") const; // Julian Epoch corresponding to specified Julian Date
23   void Convert(Double_t date,Int_t& days,Int_t& secs,Int_t& ns) const;// Convert frac. day count into days, secs and ns 
24   Double_t Convert(Int_t days,Int_t secs,Int_t ns) const;             // Convert days, secs and ns into frac. day count
25   void GetMJD(Int_t& mjd,Int_t& sec,Int_t& ns); // Provide corresponding Modified Julian Date and time
26   Double_t GetMJD();                            // Provide corresponding Modified Julian Date in fractional days
27   void GetTJD(Int_t& mjd,Int_t& sec,Int_t& ns); // Provide corresponding Truncated Julian Date and time
28   Double_t GetTJD();                            // Provide corresponding Truncated Julian Date in fractional days
29   void GetJD(Int_t& jd,Int_t& sec,Int_t& ns);   // Provide corresponding Julian Date and time
30   Double_t GetJD();                             // Provide corresponding Julian Date in fractional days
31   Double_t GetJE();                             // Provide corresponding Julian Epoch
32   void SetMJD(Int_t mjd,Int_t sec,Int_t ns);    // Set Modified Julian Date and time
33   void SetMJD(Double_t mjd);                    // Set Modified Julian Date and time
34   void SetJD(Int_t jd,Int_t sec,Int_t ns);      // Set Julian Date and time
35   void SetJD(Double_t jd);                      // Set Julian Date and time
36   void SetTJD(Int_t mjd,Int_t sec,Int_t ns);    // Set Modified Julian Date and time
37   void SetTJD(Double_t mjd);                    // Set Modified Julian Date and time
38
39  protected:
40   Int_t fMJD;  // Modified Julian Date
41   Int_t fJsec; // Number of seconds elapsed within the MJD
42   Int_t fJns;  // Remaining fractional number of seconds (in nanoseconds) elapsed within the MJD
43
44  private:
45   void FillJulian(); // Calculation and setting of the corresponding Julian parameters  
46   Int_t fCalcs;      // The TTimeStamp seconds counter value at Julian parameter calculation
47   Int_t fCalcns;     // The TTimeStamp nanoseconds counter value at Julian parameter calculation
48
49  ClassDef(AliTimestamp,1) // Handling of timestamps for (astro)particle physics research.
50 };
51 #endif