4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /* $Id: AliTimeStamp.h 22322 2007-11-22 11:43:14Z cvetan $ */
9 ///////////////////////////////////////////////////////////////////////////////
11 // Class to define Event Timestamp from :
16 // + | ===> Bunch cross
19 //////////////////////////////////////////////////////////////////////////////
24 class AliTimeStamp : public TObject {
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 AliTimeStamp( const AliTimeStamp ×tamp );
33 AliTimeStamp& operator=(const AliTimeStamp& timestamp);
36 UInt_t GetOrbit() const { return fOrbit; }
37 UInt_t GetPeriod() const { return fPeriod; }
38 ULong64_t GetBunchCross() const { return fBunchCross; }
39 UInt_t GetSeconds() const { return (UInt_t)(fBunchCross/1000000000.*fNanosecPerBC); }
40 UInt_t GetMicroSecs() const { return (UInt_t)(fmod(fBunchCross *fNanosecPerBC, 1000000000.)/1000 ); }
41 virtual Bool_t IsSortable() const { return kTRUE; }
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 );
48 virtual Int_t Compare( const TObject* obj ) const;
49 virtual void Print( const Option_t* opt ="" ) const;
51 static const Int_t fNanosecPerBC; //! nanosecs per bunch cross
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
62 ClassDef( AliTimeStamp, 1 ) // Define a timestamp