#ifndef ALIMUONTRACKCUTS_H
#define ALIMUONTRACKCUTS_H
#include "TString.h"
#include "AliAnalysisCuts.h"
#include "AliOADBMuonTrackCutsParam.h"
class TList;
class TArrayI;
class AliVParticle;
class AliInputEventHandler;
class AliMuonTrackCuts : public AliAnalysisCuts
{
public:
enum {
kMuEta = BIT(0),
kMuThetaAbs = BIT(1),
kMuPdca = BIT(2),
kMuMatchApt = BIT(3),
kMuMatchLpt = BIT(4),
kMuMatchHpt = BIT(5),
kMuTrackChiSquare = BIT(6)
};
AliMuonTrackCuts();
AliMuonTrackCuts(const char* name, const char* title);
AliMuonTrackCuts(const AliMuonTrackCuts& obj);
AliMuonTrackCuts& operator=(const AliMuonTrackCuts& obj);
virtual ~AliMuonTrackCuts();
virtual UInt_t GetSelectionMask ( const TObject* obj );
virtual Bool_t IsSelected ( TObject* obj );
virtual Bool_t IsSelected ( TList* );
void SetDefaultFilterMask();
void SetPassNumber ( Int_t passNumber );
void SetPassName ( TString passName ) { fPassName = passName; }
void SetIsMC ( Bool_t isMC = kTRUE ) { fIsMC = isMC; }
void SetAllowDefaultParams ( Bool_t allowDefaultParams = kTRUE ) { fAllowDefaultParams = allowDefaultParams; }
void SetCustomParamFromRun ( Int_t runNumber = -1, TString passName = "" );
void SetCustomParam ( const AliInputEventHandler* eventHandler );
TString GetPassName () const { return fPassName; }
Bool_t SetRun ( const AliInputEventHandler* eventHandler );
void Print ( Option_t* option = "" ) const;
Bool_t TrackPtCutMatchTrigClass ( const AliVParticle* track, const TArrayI ptCutFromClass) const;
TVector3 GetCorrectedDCA ( const AliVParticle* track ) const;
Double_t GetAverageMomentum ( const AliVParticle* track ) const;
Bool_t IsThetaAbs23 ( const AliVParticle* track ) const;
void ApplySharpPtCutInMatching ( Bool_t sharpPtCut = kTRUE ) { fSharpPtCut = sharpPtCut; }
Bool_t IsApplySharpPtCutInMatching () const { return fSharpPtCut; }
const AliOADBMuonTrackCutsParam GetMuonTrackCutsParam () const { return fOADBParam; };
AliOADBMuonTrackCutsParam* CustomParam ();
private:
TString GuessPass ( const AliInputEventHandler* eventHandler );
Bool_t ReadParamFromOADB ( Int_t runNumber, TString passName );
Bool_t fIsMC;
Bool_t fUseCustomParam;
Bool_t fSharpPtCut;
Bool_t fAllowDefaultParams;
TString fPassName;
AliOADBMuonTrackCutsParam fOADBParam;
ClassDef(AliMuonTrackCuts, 5);
};
#endif