ROOT logo
#ifndef ALICUTVALUERANGE_H
#define ALICUTVALUERANGE_H
/* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Author: Markus Fasel

#include <TObject.h>

namespace EMCalTriggerPtAnalysis{

template<typename t>
class AliCutValueRange : public TObject {
public:
	AliCutValueRange();
	AliCutValueRange(t min, t max);
	AliCutValueRange(t limit, bool isUpper);
	virtual ~AliCutValueRange() {}

	void SetLimits(t min, t max){
		fLimits[0] = min;
		fLimits[1] = max;
		fHasLimit[0] = fHasLimit[1] = true;
	}
	void UnsetLimits(){ fHasLimit[0] = fHasLimit[1] = false; }
	void SetLimit(t value, bool isUpper){
		int bin = isUpper ? 1 : 0;
		fLimits[bin] = value;
		fHasLimit[bin] = true;
	}
	void UnsetLimit(bool isUpper){
		int bin = isUpper ? 1 : 0;
		fHasLimit[bin] = false;
	}
	void Negate() { fNegate = true; }
	void SetPositive() { fNegate = false; }
	bool IsInRange(t value) const;
private:
	t       fLimits[2];
	bool    fHasLimit[2];
	bool    fNegate;

	ClassDef(AliCutValueRange, 1);     // Value range for cuts
};

}

#endif
 AliCutValueRange.h:1
 AliCutValueRange.h:2
 AliCutValueRange.h:3
 AliCutValueRange.h:4
 AliCutValueRange.h:5
 AliCutValueRange.h:6
 AliCutValueRange.h:7
 AliCutValueRange.h:8
 AliCutValueRange.h:9
 AliCutValueRange.h:10
 AliCutValueRange.h:11
 AliCutValueRange.h:12
 AliCutValueRange.h:13
 AliCutValueRange.h:14
 AliCutValueRange.h:15
 AliCutValueRange.h:16
 AliCutValueRange.h:17
 AliCutValueRange.h:18
 AliCutValueRange.h:19
 AliCutValueRange.h:20
 AliCutValueRange.h:21
 AliCutValueRange.h:22
 AliCutValueRange.h:23
 AliCutValueRange.h:24
 AliCutValueRange.h:25
 AliCutValueRange.h:26
 AliCutValueRange.h:27
 AliCutValueRange.h:28
 AliCutValueRange.h:29
 AliCutValueRange.h:30
 AliCutValueRange.h:31
 AliCutValueRange.h:32
 AliCutValueRange.h:33
 AliCutValueRange.h:34
 AliCutValueRange.h:35
 AliCutValueRange.h:36
 AliCutValueRange.h:37
 AliCutValueRange.h:38
 AliCutValueRange.h:39
 AliCutValueRange.h:40
 AliCutValueRange.h:41
 AliCutValueRange.h:42
 AliCutValueRange.h:43
 AliCutValueRange.h:44
 AliCutValueRange.h:45
 AliCutValueRange.h:46
 AliCutValueRange.h:47
 AliCutValueRange.h:48