Line data Source code
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 224 : virtual ~AliTimeStamp() {}
32 : AliTimeStamp( const AliTimeStamp ×tamp );
33 : AliTimeStamp& operator=(const AliTimeStamp& timestamp);
34 :
35 : // Getters
36 0 : UInt_t GetOrbit() const { return fOrbit; }
37 0 : UInt_t GetPeriod() const { return fPeriod; }
38 0 : ULong64_t GetBunchCross() const { return fBunchCross; }
39 0 : UInt_t GetSeconds() const { return (UInt_t)(fBunchCross/1000000000.*fNanosecPerBC); }
40 0 : UInt_t GetMicroSecs() const { return (UInt_t)(fmod(fBunchCross *fNanosecPerBC, 1000000000.)/1000 ); }
41 0 : virtual Bool_t IsSortable() const { return kTRUE; }
42 : // Setters
43 : void SetTimeStamp( UInt_t orbit, UInt_t period, ULong64_t bunchcross );
44 : void SetTimeStamp( UInt_t orbit, UInt_t period,
45 : UInt_t seconds, UInt_t microsecs );
46 :
47 :
48 : virtual Int_t Compare( const TObject* obj ) const;
49 : virtual void Print( const Option_t* opt ="" ) const;
50 :
51 : static const Int_t fNanosecPerBC; //! nanosecs per bunch cross
52 :
53 : protected:
54 : UInt_t fOrbit; // Orbit
55 : UInt_t fPeriod; // Period counter
56 : ULong64_t fBunchCross; // Bunch Cross
57 : // UInt_t fSeconds; // Seconds
58 : // UInt_t fMicroSecs; // Microsecs
59 :
60 : private:
61 :
62 400 : ClassDef( AliTimeStamp, 1 ) // Define a timestamp
63 : };
64 :
65 :
66 : #endif
|