]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliCDBRunRange.cxx
new digitization and reconstruction corresponded to new data format
[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
68 return (fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun
69 || fFirstRun <= other.fLastRun
70 && other.fLastRun <= fLastRun)
71 || (other.fFirstRun <= fFirstRun && fFirstRun <= other.fLastRun
72 || other.fFirstRun <= fLastRun
73 && fLastRun <= other.fLastRun);
74}
75
76//___________________________________________________________________________
77Bool_t AliCDBRunRange::Comprises(const AliCDBRunRange& other) const {
78// check if this runRange contains other runRange
79
80 if (!(IsValid() && other.IsValid())) {
81 AliError("Comparing invalid run ranges!");
82 return kFALSE;
83 }
84
85 if (IsAnyRange()) {
86 return kTRUE;
87 }
88
89 return fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun
90 && fFirstRun <= other.fLastRun && other.fLastRun <= fLastRun;
91}
92
93//___________________________________________________________________________
94Bool_t AliCDBRunRange::IsEqual(const TObject* obj) const {
95// check if this runRange is equal to other runRange
96
97 if (this == obj) {
98 return kTRUE;
99 }
100
101 if (AliCDBRunRange::Class() != obj->IsA()) {
102 return kFALSE;
103 }
104 AliCDBRunRange* other = (AliCDBRunRange*) obj;
105 return fFirstRun == other->fFirstRun && fLastRun == other->fLastRun;
106}
107
108//___________________________________________________________________________
109Bool_t AliCDBRunRange::IsValid() const {
110// validity check
111
112 if (fFirstRun < 0 && fLastRun < 0) {
113 return kTRUE;
114 }
115
116 if (fFirstRun >= 0 && fLastRun >= fFirstRun) {
117 return kTRUE;
118 }
119
120 return kFALSE;
121}
122
123