#ifndef ALIEVENTTAGCUTS_H
#define ALIEVENTTAGCUTS_H
#include <TObject.h>
class AliEventTag;
class AliEventTagCuts : public TObject {
public:
AliEventTagCuts();
~AliEventTagCuts();
void Reset();
void SetPeriodNumberRange(UInt_t n1, UInt_t n2);
void SetOrbitNumberRange(UInt_t n1, UInt_t n2);
void SetBunchCrossNumberRange(UShort_t n1, UShort_t n2);
void SetEventType(UInt_t ntype);
void SetNParticipantsRange(Int_t low, Int_t high);
void SetImpactParamRange(Float_t low, Float_t high);
void SetEtaLeadingParticleRange(Float_t low, Float_t high);
void SetPhiLeadingParticleRange(Float_t low, Float_t high);
void SetPrimaryVertexXRange(Float_t low, Float_t high);
void SetPrimaryVertexYRange(Float_t low, Float_t high);
void SetPrimaryVertexZRange(Float_t low, Float_t high);
void SetPrimaryVertexFlag(Int_t flag);
void SetPrimaryVertexZErrorRange(Float_t low, Float_t high);
void SetTriggerMask(ULong64_t trmask);
void SetTriggerCluster(UChar_t trcluster);
void SetZDCNeutron1Range(Float_t low, Float_t high);
void SetZDCProton1Range(Float_t low, Float_t high);
void SetZDCEMRange(Float_t low, Float_t high);
void SetZDCNeutron2Range(Float_t low, Float_t high);
void SetZDCProton2Range(Float_t low, Float_t high);
void SetT0VertexZRange(Float_t low, Float_t high);
void SetMultiplicityRange(Int_t low, Int_t high);
void SetPosMultiplicityRange(Int_t low, Int_t high);
void SetNegMultiplicityRange(Int_t low, Int_t high);
void SetNeutrMultiplicityRange(Int_t low, Int_t high);
void SetNV0sRange(Int_t low, Int_t high);
void SetNCascadesRange(Int_t low, Int_t high);
void SetNKinksRange(Int_t low, Int_t high);
void SetNPMDTracksRange(Int_t low, Int_t high);
void SetNFMDTracksRange(Int_t low, Int_t high);
void SetNPHOSClustersRange(Int_t low, Int_t high);
void SetNEMCALClustersRange(Int_t low, Int_t high);
void SetNJetCandidatesRange(Int_t low, Int_t high);
void SetTopJetEnergyMin(Float_t low);
void SetTopNeutralEnergyMin(Float_t low);
void SetNHardPhotonsRange(Int_t low, Int_t high);
void SetNChargedAbove1GeVRange(Int_t low, Int_t high);
void SetNChargedAbove3GeVRange(Int_t low, Int_t high);
void SetNChargedAbove10GeVRange(Int_t low, Int_t high);
void SetNMuonsAbove1GeVRange(Int_t low, Int_t high);
void SetNMuonsAbove3GeVRange(Int_t low, Int_t high);
void SetNMuonsAbove10GeVRange(Int_t low, Int_t high);
void SetNElectronsAbove1GeVRange(Int_t low, Int_t high);
void SetNElectronsAbove3GeVRange(Int_t low, Int_t high);
void SetNElectronsAbove10GeVRange(Int_t low, Int_t high);
void SetNElectronRange(Int_t low, Int_t high);
void SetNFWMuonRange(Int_t low, Int_t high);
void SetNFWMatchedMuonRange(Int_t low, Int_t high);
void SetNMuonRange(Int_t low, Int_t high);
void SetNPionRange(Int_t low, Int_t high);
void SetNKaonRange(Int_t low, Int_t high);
void SetNProtonRange(Int_t low, Int_t high);
void SetNLambdaRange(Int_t low, Int_t high);
void SetNPhotonRange(Int_t low, Int_t high);
void SetNPi0Range(Int_t low, Int_t high);
void SetNNeutronRange(Int_t low, Int_t high);
void SetNKaon0Range(Int_t low, Int_t high);
void SetTotalPRange(Float_t low, Float_t high);
void SetMeanPtRange(Float_t low, Float_t high);
void SetTopPtMin(Float_t low);
void SetTotalNeutralPRange(Float_t low, Float_t high);
void SetMeanNeutralPtPRange(Float_t low, Float_t high);
void SetTopNeutralPtMin(Float_t low);
void SetEventPlaneAngleRange(Float_t low, Float_t high);
void SetHBTRadiiRange(Float_t low, Float_t high);
void SetNumberOfFiredChipsLayer1Range(Int_t low, Int_t high);
void SetNumberOfFiredChipsLayer2Range(Int_t low, Int_t high);
void SetNumberOfSPDTrackletsRange(Int_t low, Int_t high);
void ResetTriggerClasses();
void AddRequiredFiredTriggerClass(TString aclass);
void InitializeTriggerClasses(TString aclass);
Bool_t IsAccepted(AliEventTag *EvTag) const;
Bool_t IsAccepted(const AliEventTag *EvTag) const;
private:
UInt_t fPeriodNumberMin, fPeriodNumberMax;
Bool_t fPeriodNumberFlag;
UInt_t fOrbitNumberMin, fOrbitNumberMax;
Bool_t fOrbitNumberFlag;
UShort_t fBunchCrossNumberMin, fBunchCrossNumberMax;
Bool_t fBunchCrossNumberFlag;
UInt_t fEventType;
Bool_t fEventTypeFlag;
Int_t fNParticipantsMin, fNParticipantsMax;
Bool_t fNParticipantsFlag;
Float_t fImpactParamMin, fImpactParamMax;
Bool_t fImpactParamFlag;
Float_t fEtaMin, fEtaMax;
Bool_t fEtaFlag;
Float_t fPhiMin, fPhiMax;
Bool_t fPhiFlag;
Float_t fVxMin, fVxMax;
Bool_t fVxFlag;
Float_t fVyMin, fVyMax;
Bool_t fVyFlag;
Float_t fVzMin, fVzMax;
Bool_t fVzFlag;
Int_t fPrimaryVertexFlag;
Bool_t fPVFlag;
Float_t fPrimaryVertexZErrorMin, fPrimaryVertexZErrorMax;
Bool_t fPVzErrorFlag;
ULong64_t fTriggerMask;
Bool_t fTriggerMaskFlag;
UChar_t fTriggerCluster;
Bool_t fTriggerClusterFlag;
Float_t fZDCNeutron1EnergyMin, fZDCNeutron1EnergyMax;
Bool_t fZDCNeutron1EnergyFlag;
Float_t fZDCProton1EnergyMin, fZDCProton1EnergyMax;
Bool_t fZDCProton1EnergyFlag;
Float_t fZDCNeutron2EnergyMin, fZDCNeutron2EnergyMax;
Bool_t fZDCNeutron2EnergyFlag;
Float_t fZDCProton2EnergyMin, fZDCProton2EnergyMax;
Bool_t fZDCProton2EnergyFlag;
Float_t fZDCEMEnergyMin, fZDCEMEnergyMax;
Bool_t fZDCEMEnergyFlag;
Float_t fT0VertexZMin, fT0VertexZMax;
Bool_t fT0VertexZFlag;
Int_t fMultMin, fMultMax;
Bool_t fMultFlag;
Int_t fPosMultMin, fPosMultMax;
Bool_t fPosMultFlag;
Int_t fNegMultMin, fNegMultMax;
Bool_t fNegMultFlag;
Int_t fNeutrMultMin, fNeutrMultMax;
Bool_t fNeutrMultFlag;
Int_t fNV0sMin, fNV0sMax;
Bool_t fNV0sFlag;
Int_t fNCascadesMin, fNCascadesMax;
Bool_t fNCascadesFlag;
Int_t fNKinksMin, fNKinksMax;
Bool_t fNKinksFlag;
Int_t fNPMDTracksMin, fNPMDTracksMax;
Bool_t fNPMDTracksFlag;
Int_t fNFMDTracksMin, fNFMDTracksMax;
Bool_t fNFMDTracksFlag;
Int_t fNPHOSClustersMin, fNPHOSClustersMax;
Bool_t fNPHOSClustersFlag;
Int_t fNEMCALClustersMin, fNEMCALClustersMax;
Bool_t fNEMCALClustersFlag;
Int_t fNJetCandidatesMin, fNJetCandidatesMax;
Bool_t fNJetCandidatesFlag;
Float_t fTopJetEnergyMin;
Bool_t fTopJetEnergyMinFlag;
Float_t fTopNeutralEnergyMin;
Bool_t fTopNeutralEnergyMinFlag;
Int_t fNHardPhotonCandidatesMin, fNHardPhotonCandidatesMax;
Bool_t fNHardPhotonCandidatesFlag;
Int_t fNChargedAbove1GeVMin, fNChargedAbove1GeVMax;
Bool_t fNChargedAbove1GeVFlag;
Int_t fNChargedAbove3GeVMin, fNChargedAbove3GeVMax;
Bool_t fNChargedAbove3GeVFlag;
Int_t fNChargedAbove10GeVMin, fNChargedAbove10GeVMax;
Bool_t fNChargedAbove10GeVFlag;
Int_t fNMuonsAbove1GeVMin, fNMuonsAbove1GeVMax;
Bool_t fNMuonsAbove1GeVFlag;
Int_t fNMuonsAbove3GeVMin, fNMuonsAbove3GeVMax;
Bool_t fNMuonsAbove3GeVFlag;
Int_t fNMuonsAbove10GeVMin, fNMuonsAbove10GeVMax;
Bool_t fNMuonsAbove10GeVFlag;
Int_t fNElectronsAbove1GeVMin, fNElectronsAbove1GeVMax;
Bool_t fNElectronsAbove1GeVFlag;
Int_t fNElectronsAbove3GeVMin, fNElectronsAbove3GeVMax;
Bool_t fNElectronsAbove3GeVFlag;
Int_t fNElectronsAbove10GeVMin,fNElectronsAbove10GeVMax;
Bool_t fNElectronsAbove10GeVFlag;
Int_t fNElectronsMin, fNElectronsMax;
Bool_t fNElectronsFlag;
Int_t fNFWMuonsMin, fNFWMuonsMax;
Bool_t fNFWMuonsFlag;
Int_t fNFWMatchedMuonsMin, fNFWMatchedMuonsMax;
Bool_t fNFWMatchedMuonsFlag;
Int_t fNMuonsMin, fNMuonsMax;
Bool_t fNMuonsFlag;
Int_t fNPionsMin, fNPionsMax;
Bool_t fNPionsFlag;
Int_t fNKaonsMin, fNKaonsMax;
Bool_t fNKaonsFlag;
Int_t fNProtonsMin, fNProtonsMax;
Bool_t fNProtonsFlag;
Int_t fNLambdasMin, fNLambdasMax;
Bool_t fNLambdasFlag;
Int_t fNPhotonsMin, fNPhotonsMax;
Bool_t fNPhotonFlag;
Int_t fNPi0sMin, fNPi0sMax;
Bool_t fNPi0sFlag;
Int_t fNNeutronsMin, fNNeutronsMax;
Bool_t fNNeutronsFlag;
Int_t fNKaon0sMin, fNKaon0sMax;
Bool_t fNKaon0sFlag;
Float_t fTotalPMin, fTotalPMax;
Bool_t fTotalPFlag;
Float_t fMeanPtMin, fMeanPtMax;
Bool_t fMeanPtFlag;
Float_t fTopPtMin;
Bool_t fTopPtMinFlag;
Float_t fTotalNeutralPMin, fTotalNeutralPMax;
Bool_t fTotalNeutralPFlag;
Float_t fMeanNeutralPtMin, fMeanNeutralPtMax;
Bool_t fMeanNeutralPtFlag;
Float_t fTopNeutralPtMin;
Bool_t fTopNeutralPtMinFlag;
Float_t fEventPlaneAngleMin, fEventPlaneAngleMax;
Bool_t fEventPlaneAngleFlag;
Float_t fHBTRadiiMin, fHBTRadiiMax;
Bool_t fHBTRadiiFlag;
Int_t fNumberOfFiredChipsLayer1Min, fNumberOfFiredChipsLayer1Max;
Bool_t fNumberOfFiredChipsLayer1Flag;
Int_t fNumberOfFiredChipsLayer2Min, fNumberOfFiredChipsLayer2Max;
Bool_t fNumberOfFiredChipsLayer2Flag;
Int_t fNumberOfSPDTrackletsMin, fNumberOfSPDTrackletsMax;
Bool_t fNumberOfSPDTrackletsFlag;
Bool_t fFiredTriggerClassFlag;
TString fFiredTriggerClass;
TString fActiveTriggerClasses;
ClassDef(AliEventTagCuts, 4)
};
#endif