]>
Commit | Line | Data |
---|---|---|
d7dd8a54 | 1 | #ifndef ALITIMESTAMP_H |
2 | #define ALITIMESTAMP_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id: AliTimeStamp.h 22322 2007-11-22 11:43:14Z cvetan $ */ | |
8 | ||
9 | /////////////////////////////////////////////////////////////////////////////// | |
10 | // | |
11 | // Class to define Event Timestamp from : | |
12 | // | |
13 | // Orbit | |
14 | // Period counter | |
15 | // Seconds | | |
16 | // + | ===> Bunch cross | |
17 | // Microsecs | | |
18 | // | |
19 | ////////////////////////////////////////////////////////////////////////////// | |
20 | #include <cmath> | |
21 | ||
22 | class TObject; | |
23 | ||
24 | class AliTimeStamp : public TObject { | |
25 | ||
26 | public: | |
27 | AliTimeStamp(); | |
28 | AliTimeStamp( UInt_t orbit, UInt_t period, ULong64_t bunchCross ); | |
29 | AliTimeStamp( UInt_t orbit, UInt_t period, | |
30 | UInt_t seconds, UInt_t microsecs ); | |
31 | virtual ~AliTimeStamp() {} | |
32 | ||
33 | // Getters | |
34 | UInt_t GetOrbit() const { return fOrbit; } | |
35 | UInt_t GetPeriod() const { return fPeriod; } | |
36 | ULong64_t GetBunchCross() const { return fBunchCross; } | |
37 | UInt_t GetSeconds() const { return (UInt_t)(fBunchCross/1000000000.*fNanosecPerBC); } | |
38 | UInt_t GetMicroSecs() const { return (UInt_t)(fmod(fBunchCross *fNanosecPerBC, 1000000000.)/1000 ); } | |
39 | virtual Bool_t IsSortable() const { return kTRUE; } | |
40 | // Setters | |
41 | void SetTimeStamp( UInt_t orbit, UInt_t period, ULong64_t bunchcross ); | |
42 | void SetTimeStamp( UInt_t orbit, UInt_t period, | |
43 | UInt_t seconds, UInt_t microsecs ); | |
44 | ||
45 | ||
46 | virtual Int_t Compare( const TObject* obj ) const; | |
47 | virtual void Print( const Option_t* opt ="" ) const; | |
48 | ||
49 | static const Int_t fNanosecPerBC; //! nanosecs per bunch cross | |
50 | ||
51 | protected: | |
52 | UInt_t fOrbit; // Orbit | |
53 | UInt_t fPeriod; // Period counter | |
54 | ULong64_t fBunchCross; // Bunch Cross | |
55 | // UInt_t fSeconds; // Seconds | |
56 | // UInt_t fMicroSecs; // Microsecs | |
57 | ||
58 | private: | |
59 | AliTimeStamp( const AliTimeStamp ×tamp ); | |
60 | AliTimeStamp& operator=(const AliTimeStamp& clus); | |
61 | ||
62 | ClassDef( AliTimeStamp, 1 ) // Define a timestamp | |
63 | }; | |
64 | ||
65 | ||
66 | #endif |