#ifndef ALIESDMUONTRACKCUTS_H
#define ALIESDMUONTRACKCUTS_H
#include <TF1.h>
#include <TH2.h>
#include "AliAnalysisCuts.h"
class AliESD;
class AliESDEvent;
class AliESDMuonTrack;
class AliLog;
class TTree;
class AliESDMuonTrackCuts : public AliAnalysisCuts
{
public:
AliESDMuonTrackCuts(const Char_t* name = "AliESDMuonTrackCuts", const Char_t* title = "");
virtual ~AliESDMuonTrackCuts();
Bool_t IsSelected(TObject* obj)
{return AcceptTrack((AliESDMuonTrack*)obj);}
Bool_t IsSelected(TList* ) {return kTRUE;}
Bool_t AcceptTrack(AliESDMuonTrack* esdMuTrack);
TObjArray* GetAcceptedTracks(AliESD* esd);
Int_t CountAcceptedTracks(AliESD* esd);
TObjArray* GetAcceptedTracks(AliESDEvent* esd);
Int_t CountAcceptedTracks(AliESDEvent* esd);
virtual Long64_t Merge(TCollection* list);
virtual void Copy(TObject &c) const;
AliESDMuonTrackCuts(const AliESDMuonTrackCuts& pd);
AliESDMuonTrackCuts &operator=(const AliESDMuonTrackCuts &c);
void SetPRange(Float_t r1=0, Float_t r2=1e10) {fPMin=r1; fPMax=r2;}
void SetPtRange(Float_t r1=0, Float_t r2=1e10) {fPtMin=r1; fPtMax=r2;}
void SetPxRange(Float_t r1=-1e10, Float_t r2=1e10) {fPxMin=r1; fPxMax=r2;}
void SetPyRange(Float_t r1=-1e10, Float_t r2=1e10) {fPyMin=r1; fPyMax=r2;}
void SetPzRange(Float_t r1=-1e10, Float_t r2=1e10) {fPzMin=r1; fPzMax=r2;}
void SetEtaRange(Float_t r1=-1e10, Float_t r2=1e10) {fEtaMin=r1; fEtaMax=r2;}
void SetRapRange(Float_t r1=-1e10, Float_t r2=1e10) {fRapMin=r1; fRapMax=r2;}
void SetHistogramsOn(Bool_t b=kFALSE) {fHistogramsOn = b;}
void DefineHistograms(Int_t color=1);
virtual Bool_t LoadHistograms(const Char_t* dir = 0);
void SaveHistograms(const Char_t* dir = 0);
void DrawHistograms();
static void EnableNeededBranches(TTree* tree);
protected:
void Init();
enum { kNCuts = 7 };
static const Char_t* fgkCutNames[kNCuts];
Float_t fPMin, fPMax;
Float_t fPtMin, fPtMax;
Float_t fPxMin, fPxMax;
Float_t fPyMin, fPyMax;
Float_t fPzMin, fPzMax;
Float_t fEtaMin, fEtaMax;
Float_t fRapMin, fRapMax;
Bool_t fHistogramsOn;
TH1F* fhPt[2];
TH1F* fhEta[2];
TH1F* fhCutStatistics;
TH2F* fhCutCorrelation;
ClassDef(AliESDMuonTrackCuts, 1)
};
#endif