ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/////////////////////////////////////////////////////////////////////
//                                                                 //
//  class AliCDBRunRange					   //
//  defines the run validity range of the object:		   //
//  [fFirstRun, fLastRun] 					   //
//                                                                 //
/////////////////////////////////////////////////////////////////////

#include "AliCDBRunRange.h"

#include "AliLog.h"

ClassImp(AliCDBRunRange)

//___________________________________________________________________________
AliCDBRunRange::AliCDBRunRange():
  fFirstRun(-1), 
  fLastRun(-1)
{
  // constructor

}

//___________________________________________________________________________
AliCDBRunRange::AliCDBRunRange(Int_t firstRun, Int_t lastRun):
  fFirstRun(firstRun), 
  fLastRun(lastRun)
{
  // constructor

}

//___________________________________________________________________________
AliCDBRunRange::~AliCDBRunRange() {
  // destructor

}

//___________________________________________________________________________
Bool_t AliCDBRunRange::Overlaps(const AliCDBRunRange& other) const {
  // check if this runRange overlaps other runRange

  if (!(IsValid() && other.IsValid())) {
    AliError("Comparing invalid run ranges!");
    return kFALSE;
  }	

  if (IsAnyRange() || other.IsAnyRange()) {
    AliError("Comparing unspecified ranges!");
    return kFALSE;
  }

  return ((fFirstRun < other.fFirstRun && other.fFirstRun <= fLastRun)
      || (other.fFirstRun <= fFirstRun && fFirstRun <= other.fLastRun));
}

//___________________________________________________________________________
Bool_t AliCDBRunRange::Comprises(const AliCDBRunRange& other) const {
  // check if this runRange contains other runRange

  if (!(IsValid() && other.IsValid())) {
    AliError("Comparing invalid run ranges!");
    return kFALSE;
  }	

  if (IsAnyRange()) {
    return kTRUE;
  }

  return fFirstRun <= other.fFirstRun && other.fFirstRun <= fLastRun
    && fFirstRun <= other.fLastRun && other.fLastRun <= fLastRun;
}

//___________________________________________________________________________
Bool_t AliCDBRunRange::IsEqual(const TObject* obj) const {
  // check if this runRange is equal to other runRange

  if (this == obj) {
    return kTRUE;
  }

  if (AliCDBRunRange::Class() != obj->IsA()) {
    return kFALSE;
  }
  AliCDBRunRange* other = (AliCDBRunRange*) obj;
  return fFirstRun == other->fFirstRun && fLastRun == other->fLastRun;
}

//___________________________________________________________________________
Bool_t AliCDBRunRange::IsValid() const {
  // validity check

  if (fFirstRun < 0 && fLastRun < 0) {
    return kTRUE;
  }

  if (fFirstRun >= 0 && fLastRun >= fFirstRun) {
    return kTRUE;
  }

  return kFALSE;
}


 AliCDBRunRange.cxx:1
 AliCDBRunRange.cxx:2
 AliCDBRunRange.cxx:3
 AliCDBRunRange.cxx:4
 AliCDBRunRange.cxx:5
 AliCDBRunRange.cxx:6
 AliCDBRunRange.cxx:7
 AliCDBRunRange.cxx:8
 AliCDBRunRange.cxx:9
 AliCDBRunRange.cxx:10
 AliCDBRunRange.cxx:11
 AliCDBRunRange.cxx:12
 AliCDBRunRange.cxx:13
 AliCDBRunRange.cxx:14
 AliCDBRunRange.cxx:15
 AliCDBRunRange.cxx:16
 AliCDBRunRange.cxx:17
 AliCDBRunRange.cxx:18
 AliCDBRunRange.cxx:19
 AliCDBRunRange.cxx:20
 AliCDBRunRange.cxx:21
 AliCDBRunRange.cxx:22
 AliCDBRunRange.cxx:23
 AliCDBRunRange.cxx:24
 AliCDBRunRange.cxx:25
 AliCDBRunRange.cxx:26
 AliCDBRunRange.cxx:27
 AliCDBRunRange.cxx:28
 AliCDBRunRange.cxx:29
 AliCDBRunRange.cxx:30
 AliCDBRunRange.cxx:31
 AliCDBRunRange.cxx:32
 AliCDBRunRange.cxx:33
 AliCDBRunRange.cxx:34
 AliCDBRunRange.cxx:35
 AliCDBRunRange.cxx:36
 AliCDBRunRange.cxx:37
 AliCDBRunRange.cxx:38
 AliCDBRunRange.cxx:39
 AliCDBRunRange.cxx:40
 AliCDBRunRange.cxx:41
 AliCDBRunRange.cxx:42
 AliCDBRunRange.cxx:43
 AliCDBRunRange.cxx:44
 AliCDBRunRange.cxx:45
 AliCDBRunRange.cxx:46
 AliCDBRunRange.cxx:47
 AliCDBRunRange.cxx:48
 AliCDBRunRange.cxx:49
 AliCDBRunRange.cxx:50
 AliCDBRunRange.cxx:51
 AliCDBRunRange.cxx:52
 AliCDBRunRange.cxx:53
 AliCDBRunRange.cxx:54
 AliCDBRunRange.cxx:55
 AliCDBRunRange.cxx:56
 AliCDBRunRange.cxx:57
 AliCDBRunRange.cxx:58
 AliCDBRunRange.cxx:59
 AliCDBRunRange.cxx:60
 AliCDBRunRange.cxx:61
 AliCDBRunRange.cxx:62
 AliCDBRunRange.cxx:63
 AliCDBRunRange.cxx:64
 AliCDBRunRange.cxx:65
 AliCDBRunRange.cxx:66
 AliCDBRunRange.cxx:67
 AliCDBRunRange.cxx:68
 AliCDBRunRange.cxx:69
 AliCDBRunRange.cxx:70
 AliCDBRunRange.cxx:71
 AliCDBRunRange.cxx:72
 AliCDBRunRange.cxx:73
 AliCDBRunRange.cxx:74
 AliCDBRunRange.cxx:75
 AliCDBRunRange.cxx:76
 AliCDBRunRange.cxx:77
 AliCDBRunRange.cxx:78
 AliCDBRunRange.cxx:79
 AliCDBRunRange.cxx:80
 AliCDBRunRange.cxx:81
 AliCDBRunRange.cxx:82
 AliCDBRunRange.cxx:83
 AliCDBRunRange.cxx:84
 AliCDBRunRange.cxx:85
 AliCDBRunRange.cxx:86
 AliCDBRunRange.cxx:87
 AliCDBRunRange.cxx:88
 AliCDBRunRange.cxx:89
 AliCDBRunRange.cxx:90
 AliCDBRunRange.cxx:91
 AliCDBRunRange.cxx:92
 AliCDBRunRange.cxx:93
 AliCDBRunRange.cxx:94
 AliCDBRunRange.cxx:95
 AliCDBRunRange.cxx:96
 AliCDBRunRange.cxx:97
 AliCDBRunRange.cxx:98
 AliCDBRunRange.cxx:99
 AliCDBRunRange.cxx:100
 AliCDBRunRange.cxx:101
 AliCDBRunRange.cxx:102
 AliCDBRunRange.cxx:103
 AliCDBRunRange.cxx:104
 AliCDBRunRange.cxx:105
 AliCDBRunRange.cxx:106
 AliCDBRunRange.cxx:107
 AliCDBRunRange.cxx:108
 AliCDBRunRange.cxx:109
 AliCDBRunRange.cxx:110
 AliCDBRunRange.cxx:111
 AliCDBRunRange.cxx:112
 AliCDBRunRange.cxx:113
 AliCDBRunRange.cxx:114
 AliCDBRunRange.cxx:115
 AliCDBRunRange.cxx:116
 AliCDBRunRange.cxx:117
 AliCDBRunRange.cxx:118
 AliCDBRunRange.cxx:119