]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/CDB/AliCDBRunRange.cxx
MFT track shit tool added
[u/mrichter/AliRoot.git] / STEER / CDB / AliCDBRunRange.cxx
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 /////////////////////////////////////////////////////////////////////
17 //                                                                 //
18 //  class AliCDBRunRange                                           //
19 //  defines the run validity range of the object:                  //
20 //  [fFirstRun, fLastRun]                                          //
21 //                                                                 //
22 /////////////////////////////////////////////////////////////////////
23
24 #include "AliCDBRunRange.h"
25
26 #include "AliLog.h"
27
28 ClassImp(AliCDBRunRange)
29
30 //___________________________________________________________________________
31 AliCDBRunRange::AliCDBRunRange():
32   fFirstRun(-1), 
33   fLastRun(-1)
34 {
35   // constructor
36
37 }
38
39 //___________________________________________________________________________
40 AliCDBRunRange::AliCDBRunRange(Int_t firstRun, Int_t lastRun):
41   fFirstRun(firstRun), 
42   fLastRun(lastRun)
43 {
44   // constructor
45
46 }
47
48 //___________________________________________________________________________
49 AliCDBRunRange::~AliCDBRunRange() {
50   // destructor
51
52 }
53
54 //___________________________________________________________________________
55 Bool_t AliCDBRunRange::Overlaps(const AliCDBRunRange& other) const {
56   // check if this runRange overlaps other runRange
57
58   if (!(IsValid() && other.IsValid())) {
59     AliError("Comparing invalid run ranges!");
60     return kFALSE;
61   }     
62
63   if (IsAnyRange() || other.IsAnyRange()) {
64     AliError("Comparing unspecified ranges!");
65     return kFALSE;
66   }
67
68   return ((fFirstRun < other.fFirstRun && other.fFirstRun <= fLastRun)
69       || (other.fFirstRun <= fFirstRun && fFirstRun <= other.fLastRun));
70 }
71
72 //___________________________________________________________________________
73 Bool_t AliCDBRunRange::Comprises(const AliCDBRunRange& other) const {
74   // check if this runRange contains other runRange
75
76   if (!(IsValid() && other.IsValid())) {
77     AliError("Comparing invalid run ranges!");
78     return kFALSE;
79   }     
80
81   if (IsAnyRange()) {
82     return kTRUE;
83   }
84
85   return fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun
86     && fFirstRun <= other.fLastRun && other.fLastRun <= fLastRun;
87 }
88
89 //___________________________________________________________________________
90 Bool_t AliCDBRunRange::IsEqual(const TObject* obj) const {
91   // check if this runRange is equal to other runRange
92
93   if (this == obj) {
94     return kTRUE;
95   }
96
97   if (AliCDBRunRange::Class() != obj->IsA()) {
98     return kFALSE;
99   }
100   AliCDBRunRange* other = (AliCDBRunRange*) obj;
101   return fFirstRun == other->fFirstRun && fLastRun == other->fLastRun;
102 }
103
104 //___________________________________________________________________________
105 Bool_t AliCDBRunRange::IsValid() const {
106   // validity check
107
108   if (fFirstRun < 0 && fLastRun < 0) {
109     return kTRUE;
110   }
111
112   if (fFirstRun >= 0 && fLastRun >= fFirstRun) {
113     return kTRUE;
114   }
115
116   return kFALSE;
117 }
118
119