1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 /* $Id: AliTimeStamp.cxx 22322 2007-11-22 11:43:14Z cvetan $ */
18 ///////////////////////////////////////////////////////////////////////////////
20 // Class to define Event Timestamp from :
25 // + | <===> Bunch cross
28 //////////////////////////////////////////////////////////////////////////////
30 #include <Riostream.h>
36 #include "AliTimeStamp.h"
38 ClassImp(AliTimeStamp)
40 //_____________________________________________________________________________
42 const Int_t AliTimeStamp::fNanosecPerBC = 25; // nanosecs per bunch cross
44 //_____________________________________________________________________________
45 AliTimeStamp::AliTimeStamp():
50 // Default constructor
53 //_____________________________________________________________________________
54 AliTimeStamp::AliTimeStamp( UInt_t orbit, UInt_t period,
55 ULong64_t bunchcross ):
58 fBunchCross( bunchcross )
61 //_____________________________________________________________________________
62 AliTimeStamp::AliTimeStamp( UInt_t orbit, UInt_t period,
63 UInt_t seconds, UInt_t microsecs):
66 fBunchCross( (ULong64_t)((seconds*1000000.+microsecs)*1000./fNanosecPerBC+0.5) )
69 //___________________________________________________________________________
70 AliTimeStamp::AliTimeStamp(const AliTimeStamp &stamp):
73 fPeriod(stamp.fPeriod),
74 fBunchCross(stamp.fBunchCross)
78 //_____________________________________________________________________________
79 AliTimeStamp& AliTimeStamp::operator=(const AliTimeStamp &stamp)
82 if(this==&stamp) return *this;
83 ((TObject *)this)->operator=(stamp);
85 fPeriod=stamp.fPeriod;
86 fBunchCross=stamp.fBunchCross;
89 //_____________________________________________________________________________
90 void AliTimeStamp::SetTimeStamp( UInt_t orbit, UInt_t period,
91 ULong64_t bunchcross )
95 fBunchCross = bunchcross;
98 //_____________________________________________________________________________
99 void AliTimeStamp::SetTimeStamp( UInt_t orbit, UInt_t period,
100 UInt_t seconds, UInt_t microsecs )
104 fBunchCross = (ULong64_t)((seconds*1000000.+microsecs)*1000./fNanosecPerBC+0.5);
109 //_____________________________________________________________________________
110 Int_t AliTimeStamp::Compare( const TObject* obj ) const
114 if( fPeriod > ((AliTimeStamp*)obj)->fPeriod ) return 1;
115 else { if( fPeriod < ((AliTimeStamp*)obj)->fPeriod ) return -1;
116 else { if( fOrbit > ((AliTimeStamp*)obj)->fOrbit ) return 1;
117 else { if( fOrbit < ((AliTimeStamp*)obj)->fOrbit ) return -1;
118 else { if( fBunchCross > ((AliTimeStamp*)obj)->fBunchCross ) return 1;
119 else { if( fBunchCross < ((AliTimeStamp*)obj)->fBunchCross ) return -1;
125 //_____________________________________________________________________________
126 void AliTimeStamp::Print( const Option_t* ) const
129 cout << "Timestamp: " << endl;
130 cout << " Orbit: " << fOrbit << " Period: " << fPeriod << endl;
131 cout << " Bunch Cross: " << GetBunchCross() << endl;
132 cout << " Seconds: " << GetSeconds() << " MicroSecs: " << GetMicroSecs() << endl;