1 | #ifndef MTIME_H
|
---|
2 | #define MTIME_H
|
---|
3 |
|
---|
4 | #ifndef MPARCONTAINER_H
|
---|
5 | #include "MParContainer.h"
|
---|
6 | #endif
|
---|
7 |
|
---|
8 | class MTime : public MParContainer
|
---|
9 | {
|
---|
10 | private:
|
---|
11 | UInt_t fTimeStamp[2]; // type of raw event which should be processed by this task
|
---|
12 | UInt_t fDuration; // time of validity
|
---|
13 |
|
---|
14 | public:
|
---|
15 |
|
---|
16 | MTime(const char *name=NULL, const char *title=NULL)
|
---|
17 | {
|
---|
18 | *fName = name ? name : ClassName();
|
---|
19 | *fTitle = title;
|
---|
20 |
|
---|
21 | SetTime(0,0);
|
---|
22 | }
|
---|
23 |
|
---|
24 | MTime(UInt_t t1, UInt_t t0)
|
---|
25 | {
|
---|
26 | SetTime(t1, t0);
|
---|
27 | }
|
---|
28 |
|
---|
29 | MTime(MTime& t)
|
---|
30 | {
|
---|
31 | fTimeStamp[0] = t.fTimeStamp[0];
|
---|
32 | fTimeStamp[1] = t.fTimeStamp[1];
|
---|
33 | fDuration = t.fDuration;
|
---|
34 | }
|
---|
35 |
|
---|
36 | void operator=(MTime &t)
|
---|
37 | {
|
---|
38 | fTimeStamp[0] = t.fTimeStamp[0];
|
---|
39 | fTimeStamp[1] = t.fTimeStamp[1];
|
---|
40 | fDuration = t.fDuration;
|
---|
41 | }
|
---|
42 |
|
---|
43 | ~MTime() {}
|
---|
44 |
|
---|
45 | void Print(Option_t *t=NULL);
|
---|
46 |
|
---|
47 | void SetTime(UInt_t t1, UInt_t t0)
|
---|
48 | {
|
---|
49 | fTimeStamp[0] = t1;
|
---|
50 | fTimeStamp[1] = t0;
|
---|
51 | }
|
---|
52 |
|
---|
53 | void SetDuration(UInt_t t)
|
---|
54 | {
|
---|
55 | fDuration = t;
|
---|
56 | }
|
---|
57 |
|
---|
58 | MTime *GetTime()
|
---|
59 | {
|
---|
60 | return this;
|
---|
61 | }
|
---|
62 |
|
---|
63 | UInt_t GetTimeLo()
|
---|
64 | {
|
---|
65 | return fTimeStamp[0];
|
---|
66 | }
|
---|
67 | UInt_t GetTimeHi()
|
---|
68 | {
|
---|
69 | return fTimeStamp[1];
|
---|
70 | }
|
---|
71 |
|
---|
72 | UInt_t GetDuration()
|
---|
73 | {
|
---|
74 | return fDuration;
|
---|
75 | }
|
---|
76 |
|
---|
77 | ClassDef(MTime, 1) // A general Mars time stamp
|
---|
78 | };
|
---|
79 |
|
---|
80 | inline Bool_t operator<(MTime &t1, MTime &t2)
|
---|
81 | {
|
---|
82 | return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<t2.GetTimeLo());
|
---|
83 | }
|
---|
84 |
|
---|
85 | inline Bool_t operator>(MTime &t1, MTime &t2)
|
---|
86 | {
|
---|
87 | return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>t2.GetTimeLo());
|
---|
88 | }
|
---|
89 |
|
---|
90 | inline Bool_t operator<=(MTime &t1, MTime &t2)
|
---|
91 | {
|
---|
92 | return (t1.GetTimeHi()<=t2.GetTimeHi()) && (t1.GetTimeLo()<=t2.GetTimeLo());
|
---|
93 | }
|
---|
94 |
|
---|
95 | inline Bool_t operator>=(MTime &t1, MTime &t2)
|
---|
96 | {
|
---|
97 | return (t1.GetTimeHi()>=t2.GetTimeHi()) && (t1.GetTimeLo()>=t2.GetTimeLo());
|
---|
98 | }
|
---|
99 |
|
---|
100 | inline Bool_t operator==(MTime &t1, MTime &t2)
|
---|
101 | {
|
---|
102 | return (t1.GetTimeLo()==t2.GetTimeLo()) && (t1.GetTimeHi()==t2.GetTimeHi());
|
---|
103 | }
|
---|
104 |
|
---|
105 | #endif
|
---|