#ifndef ALIRSNCUT_H
#define ALIRSNCUT_H
#include "AliRsnTarget.h"
class AliRsnCut : public AliRsnTarget {
public:
AliRsnCut(const char *name = "dummy", RSNTARGET target = AliRsnTarget::kTargetTypes);
AliRsnCut(const char *name, RSNTARGET target, Int_t imin, Int_t imax = 0 , Double_t dmin = 0., Double_t dmax = 0.);
AliRsnCut(const char *name, RSNTARGET target, Double_t dmin, Double_t dmax = 0., Int_t imin = 0 , Int_t imax = 0);
AliRsnCut(const AliRsnCut ©);
AliRsnCut &operator=(const AliRsnCut ©);
virtual ~AliRsnCut() { };
Int_t GetMinI() const {return fMinI;}
Int_t GetMaxI() const {return fMaxI;}
Double_t GetMinD() const {return fMinD;}
Double_t GetMaxD() const {return fMaxD;}
Int_t GetCutValueI() const {return fCutValueI;}
Double_t GetCutValueD() const {return fCutValueD;}
Bool_t GetCutResult() const {return fCutResult;}
void SetRangeI(Int_t min, Int_t max) {fMinI = min; fMaxI = max;}
void SetRangeD(Double_t min, Double_t max) {fMinD = min; fMaxD = max;}
void SetValueI(Int_t value) {fMinI = value;}
void SetValueD(Double_t value) {fMinD = value;}
void SetMaxPt(Double_t value) {fMaxPt = value;}
void SetMinPt(Double_t value) {fMinPt = value;}
void SetPtDepCut(Bool_t flag) {fPtDepCut = flag;}
void SetPtDepCutMaxFormula(const char *formula) {fPtDepCutMaxFormula = formula;}
void SetPtDepCutMinFormula(const char *formula) {fPtDepCutMinFormula = formula;}
Bool_t OkValueI();
Bool_t OkRangeI();
Bool_t OkValueD();
Bool_t OkRangeD();
virtual Bool_t IsSelected(TObject *object);
virtual void Print(Option_t *opt = "") const;
protected:
Int_t fMinI;
Int_t fMaxI;
Double_t fMinD;
Double_t fMaxD;
Int_t fMinIptdep;
Int_t fMaxIptdep;
Double_t fMinDptdep;
Double_t fMaxDptdep;
Int_t fCutValueI;
Double_t fCutValueD;
Bool_t fPtDepCut;
Double_t fRefPtValueD;
Double_t fMaxPt;
Double_t fMinPt;
TString fPtDepCutMaxFormula;
TString fPtDepCutMinFormula;
Bool_t fCutResult;
ClassDef(AliRsnCut, 3)
};
#endif