#ifndef ALIRUNTAGCUTS_H
#define ALIRUNTAGCUTS_H
#include <TObject.h>
class AliRunTag;
class AliRunTagCuts : public TObject {
public:
AliRunTagCuts();
~AliRunTagCuts();
void Reset();
void SetRunId(Int_t Pid) {fAliceRunId = Pid; fAliceRunIdFlag = kTRUE;}
void SetMagneticField(Float_t Pmag) {fAliceMagneticField = Pmag; fAliceMagneticFieldFlag = kTRUE;}
void SetDipoleField(Float_t Pmag) {fAliceDipoleField = Pmag; fAliceDipoleFieldFlag = kTRUE;}
void SetRunStartTimeRange(Int_t t0, Int_t t1) {fAliceRunStartTimeMin = t0; fAliceRunStartTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
void SetRunStopTimeRange(Int_t t0, Int_t t1) {fAliceRunStopTimeMin = t0; fAliceRunStopTimeMax = t1; fAliceRunStartTimeFlag = kTRUE;}
void SetAlirootVersion(TString v) {fAlirootVersion = "VO_ALICE@AliRoot::"; fAlirootVersion += v; fAlirootVersionFlag = kTRUE;}
void SetRootVersion(TString v) {fRootVersion = "VO_ALICE@ROOT::"; fRootVersion += v; fRootVersionFlag = kTRUE;}
void SetGeant3Version(TString v) {fGeant3Version = "VO_ALICE@GEANT3::"; fGeant3Version += v; fGeant3VersionFlag = kTRUE;}
void SetLHCPeriod(TString v) {fLHCPeriod = v; fLHCPeriodFlag = kTRUE; }
void SetReconstructionPass(TString v) {fRecPass = v; fRecPassFlag = kTRUE; }
void SetProductionName(TString v) {fProdName = v; fProdNameFlag = kTRUE; }
void SetRunValidation(Int_t Pn) {fAliceRunValidation = Pn; fAliceRunValidationFlag = kTRUE;}
void AddRunQualityValue(Int_t qval);
void SetBeamEnergy(Float_t PE) {fAliceBeamEnergy = PE; fAliceBeamTypeFlag = kTRUE;}
void SetBeamType(TString Ptype) {fAliceBeamType = Ptype; fAliceCalibrationVersionFlag = kTRUE;}
void SetCalibVersion(Int_t Pn) {fAliceCalibrationVersion = Pn; fAliceCalibrationVersionFlag = kTRUE;}
void SetDataType(Int_t i) {fAliceDataType = i; fAliceDataTypeFlag = kTRUE;}
void SetBeamTriggersRange(ULong_t tmin, ULong_t tmax) { fBeamTriggerRange[0] = tmin; fBeamTriggerRange[1] = tmax; fBeamTriggerFlag = kTRUE; }
void SetCollisionTriggersRange(ULong_t tmin, ULong_t tmax) { fCollisionTriggerRange[0] = tmin; fCollisionTriggerRange[1] = tmax; fCollisionTriggerFlag = kTRUE; }
void SetEmptyTriggersRange(ULong_t tmin, ULong_t tmax) { fEmptyTriggerRange[0] = tmin; fEmptyTriggerRange[1] = tmax; fEmptyTriggerFlag = kTRUE; }
void SetASideTriggersRange(ULong_t tmin, ULong_t tmax) { fASideTriggerRange[0] = tmin; fASideTriggerRange[1] = tmax; fASideTriggerFlag = kTRUE; }
void SetCSideTriggersRange(ULong_t tmin, ULong_t tmax) { fCSideTriggerRange[0] = tmin; fCSideTriggerRange[1] = tmax; fCSideTriggerFlag = kTRUE; }
void SetHMTriggersRange(ULong_t tmin, ULong_t tmax) { fHMTriggerRange[0] = tmin; fHMTriggerRange[1] = tmax; fHMTriggerFlag = kTRUE; }
void SetMuonTriggersRange(ULong_t tmin, ULong_t tmax) { fMuonTriggerRange[0] = tmin; fMuonTriggerRange[1] = tmax; fMuonTriggerFlag = kTRUE; }
void SetCollisionRatesRange(ULong_t tmin, ULong_t tmax) { fCollisionRateRange[0] = tmin; fCollisionRateRange[1] = tmax; fCollisionRateFlag = kTRUE; }
void SetMeanVertexsRange(ULong_t tmin, ULong_t tmax) { fMeanVertexRange[0] = tmin; fMeanVertexRange[1] = tmax; fMeanVertexFlag = kTRUE; }
void SetVertexQualitysRange(ULong_t tmin, ULong_t tmax) { fVertexQualityRange[0] = tmin; fVertexQualityRange[1] = tmax; fVertexQualityFlag = kTRUE; }
Bool_t IsAccepted(AliRunTag *RunTag) const;
private:
Int_t fAliceRunId;
Bool_t fAliceRunIdFlag;
Float_t fAliceMagneticField;
Bool_t fAliceMagneticFieldFlag;
Float_t fAliceDipoleField;
Bool_t fAliceDipoleFieldFlag;
Int_t fAliceRunStartTimeMin;
Int_t fAliceRunStartTimeMax;
Bool_t fAliceRunStartTimeFlag;
Int_t fAliceRunStopTimeMin;
Int_t fAliceRunStopTimeMax;
Bool_t fAliceRunStopTimeFlag;
TString fAlirootVersion;
Bool_t fAlirootVersionFlag;
TString fRootVersion;
Bool_t fRootVersionFlag;
TString fGeant3Version;
Bool_t fGeant3VersionFlag;
TString fLHCPeriod;
Bool_t fLHCPeriodFlag;
TString fRecPass;
Bool_t fRecPassFlag;
TString fProdName;
Bool_t fProdNameFlag;
Bool_t fAliceRunValidation;
Bool_t fAliceRunValidationFlag;
TString fAliceRunQualities;
Bool_t fAliceRunQualitiesFlag;
Float_t fAliceBeamEnergy;
Bool_t fAliceBeamEnergyFlag;
TString fAliceBeamType;
Bool_t fAliceBeamTypeFlag;
Int_t fAliceCalibrationVersion;
Bool_t fAliceCalibrationVersionFlag;
Int_t fAliceDataType;
Bool_t fAliceDataTypeFlag;
ULong_t fBeamTriggerRange[2];
Bool_t fBeamTriggerFlag;
ULong_t fCollisionTriggerRange[2];
Bool_t fCollisionTriggerFlag;
ULong_t fEmptyTriggerRange[2];
Bool_t fEmptyTriggerFlag;
ULong_t fASideTriggerRange[2];
Bool_t fASideTriggerFlag;
ULong_t fCSideTriggerRange[2];
Bool_t fCSideTriggerFlag;
ULong_t fHMTriggerRange[2];
Bool_t fHMTriggerFlag;
ULong_t fMuonTriggerRange[2];
Bool_t fMuonTriggerFlag;
Float_t fCollisionRateRange[2];
Bool_t fCollisionRateFlag;
Float_t fMeanVertexRange[2];
Bool_t fMeanVertexFlag;
Float_t fVertexQualityRange[2];
Bool_t fVertexQualityFlag;
ClassDef(AliRunTagCuts, 2)
};
#endif