Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / STEER / AliCDBRunRange.cxx
CommitLineData
9e1ceb13 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
28ClassImp(AliCDBRunRange)
29
30//___________________________________________________________________________
31AliCDBRunRange::AliCDBRunRange():
32fFirstRun(-1),
33fLastRun(-1)
34{
35// constructor
36
37}
38
39//___________________________________________________________________________
40AliCDBRunRange::AliCDBRunRange(Int_t firstRun, Int_t lastRun):
41fFirstRun(firstRun),
42fLastRun(lastRun)
43{
44// constructor
45
46}
47
48//___________________________________________________________________________
49AliCDBRunRange::~AliCDBRunRange() {
50// destructor
51
52}
53
54//___________________________________________________________________________
55Bool_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
f12d42ce 68 return ((fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun)
69 || (fFirstRun <= other.fLastRun && other.fLastRun <= fLastRun))
70 || ((other.fFirstRun <= fFirstRun && fFirstRun <= other.fLastRun)
71 || (other.fFirstRun <= fLastRun && fLastRun <= other.fLastRun));
9e1ceb13 72}
73
74//___________________________________________________________________________
75Bool_t AliCDBRunRange::Comprises(const AliCDBRunRange& other) const {
76// check if this runRange contains other runRange
77
78 if (!(IsValid() && other.IsValid())) {
79 AliError("Comparing invalid run ranges!");
80 return kFALSE;
81 }
82
83 if (IsAnyRange()) {
84 return kTRUE;
85 }
86
87 return fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun
88 && fFirstRun <= other.fLastRun && other.fLastRun <= fLastRun;
89}
90
91//___________________________________________________________________________
92Bool_t AliCDBRunRange::IsEqual(const TObject* obj) const {
93// check if this runRange is equal to other runRange
94
95 if (this == obj) {
96 return kTRUE;
97 }
98
99 if (AliCDBRunRange::Class() != obj->IsA()) {
100 return kFALSE;
101 }
102 AliCDBRunRange* other = (AliCDBRunRange*) obj;
103 return fFirstRun == other->fFirstRun && fLastRun == other->fLastRun;
104}
105
106//___________________________________________________________________________
107Bool_t AliCDBRunRange::IsValid() const {
108// validity check
109
110 if (fFirstRun < 0 && fLastRun < 0) {
111 return kTRUE;
112 }
113
114 if (fFirstRun >= 0 && fLastRun >= fFirstRun) {
115 return kTRUE;
116 }
117
118 return kFALSE;
119}
120
121