AliRoot Core  edcc906 (edcc906)
AliCDBRunRange.cxx
Go to the documentation of this file.
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 
17 // //
18 // class AliCDBRunRange //
19 // defines the run validity range of the object: //
20 // [fFirstRun, fLastRun] //
21 // //
23 
24 #include "AliCDBRunRange.h"
25 
26 #include "AliLog.h"
27 
28 ClassImp(AliCDBRunRange)
29 
30 //___________________________________________________________________________
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 //___________________________________________________________________________
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 
Bool_t Overlaps(const AliCDBRunRange &other) const
virtual Bool_t IsEqual(const TObject *obj) const
Bool_t IsAnyRange() const
Bool_t IsValid() const
virtual ~AliCDBRunRange()
#define AliError(message)
Definition: AliLog.h:591
Bool_t Comprises(const AliCDBRunRange &other) const