]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliTimeStamp.cxx
Reading friends in analysis framework inside HLT
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliTimeStamp.cxx
CommitLineData
d7dd8a54 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16/* $Id: AliTimeStamp.cxx 22322 2007-11-22 11:43:14Z cvetan $ */
17
18///////////////////////////////////////////////////////////////////////////////
19//
20// Class to define Event Timestamp from :
21//
22// Orbit
23// Period counter
24// Seconds |
25// + | <===> Bunch cross
26// Microsecs |
27//
28//////////////////////////////////////////////////////////////////////////////
29
30#include <Riostream.h>
31
32
33#include "TObject.h"
34
35#include "AliLog.h"
36#include "AliTimeStamp.h"
37
66b0310c 38using std::endl;
39using std::cout;
d7dd8a54 40ClassImp(AliTimeStamp)
41
42//_____________________________________________________________________________
43
44const Int_t AliTimeStamp::fNanosecPerBC = 25; // nanosecs per bunch cross
45
46//_____________________________________________________________________________
47AliTimeStamp::AliTimeStamp():
48 fOrbit(0),
49 fPeriod(0),
50 fBunchCross(0)
51{
54654472 52 // Default constructor
d7dd8a54 53}
54
55//_____________________________________________________________________________
56AliTimeStamp::AliTimeStamp( UInt_t orbit, UInt_t period,
57 ULong64_t bunchcross ):
58 fOrbit(orbit),
59 fPeriod(period),
60 fBunchCross( bunchcross )
61{
62}
63//_____________________________________________________________________________
64AliTimeStamp::AliTimeStamp( UInt_t orbit, UInt_t period,
65 UInt_t seconds, UInt_t microsecs):
66 fOrbit(orbit),
67 fPeriod(period),
68 fBunchCross( (ULong64_t)((seconds*1000000.+microsecs)*1000./fNanosecPerBC+0.5) )
69{
70}
54654472 71//___________________________________________________________________________
72AliTimeStamp::AliTimeStamp(const AliTimeStamp &stamp):
73 TObject(stamp),
74 fOrbit(stamp.fOrbit),
75 fPeriod(stamp.fPeriod),
76 fBunchCross(stamp.fBunchCross)
77{
78 // copy constructor
79}
80//_____________________________________________________________________________
81AliTimeStamp& AliTimeStamp::operator=(const AliTimeStamp &stamp)
82{
83 //assignment operator
84 if(this==&stamp) return *this;
85 ((TObject *)this)->operator=(stamp);
86 fOrbit=stamp.fOrbit;
87 fPeriod=stamp.fPeriod;
88 fBunchCross=stamp.fBunchCross;
89 return *this;
90}
d7dd8a54 91//_____________________________________________________________________________
92void AliTimeStamp::SetTimeStamp( UInt_t orbit, UInt_t period,
93 ULong64_t bunchcross )
94{
95 fOrbit = orbit;
96 fPeriod = period;
97 fBunchCross = bunchcross;
98}
99
100//_____________________________________________________________________________
101void AliTimeStamp::SetTimeStamp( UInt_t orbit, UInt_t period,
102 UInt_t seconds, UInt_t microsecs )
103{
104 fOrbit = orbit;
105 fPeriod = period;
106 fBunchCross = (ULong64_t)((seconds*1000000.+microsecs)*1000./fNanosecPerBC+0.5);
107}
108
109
110
111//_____________________________________________________________________________
112Int_t AliTimeStamp::Compare( const TObject* obj ) const
113{
114 // Compare
33d4a580 115
116 if( fPeriod > ((AliTimeStamp*)obj)->fPeriod ) return 1;
117 else { if( fPeriod < ((AliTimeStamp*)obj)->fPeriod ) return -1;
118 else { if( fOrbit > ((AliTimeStamp*)obj)->fOrbit ) return 1;
119 else { if( fOrbit < ((AliTimeStamp*)obj)->fOrbit ) return -1;
120 else { if( fBunchCross > ((AliTimeStamp*)obj)->fBunchCross ) return 1;
121 else { if( fBunchCross < ((AliTimeStamp*)obj)->fBunchCross ) return -1;
122 else return 0;
123}}}}}
124
d7dd8a54 125}
126
127//_____________________________________________________________________________
128void AliTimeStamp::Print( const Option_t* ) const
129{
130 // Print
131 cout << "Timestamp: " << endl;
132 cout << " Orbit: " << fOrbit << " Period: " << fPeriod << endl;
133 cout << " Bunch Cross: " << GetBunchCross() << endl;
134 cout << " Seconds: " << GetSeconds() << " MicroSecs: " << GetMicroSecs() << endl;
135}