1 #ifndef ALIANALYSISMUMUSINGLE_H
2 #define ALIANALYSISMUMUSINGLE_H
6 * \class AliAnalysisMuMuSingle
8 * \brief Histogramming of single muon tracks.
10 * \author L. Aphecetche (Subatech)
14 #include "AliAnalysisMuMuBase.h"
16 class AliMuonTrackCuts;
20 class AliAnalysisMuMuSingle : public AliAnalysisMuMuBase
24 AliAnalysisMuMuSingle();
25 virtual ~AliAnalysisMuMuSingle();
27 virtual void ShouldSeparatePlusAndMinus(Bool_t value) { fShouldSeparatePlusAndMinus = value; }
29 virtual Bool_t ShouldSeparatePlusAndMinus() const { return fShouldSeparatePlusAndMinus; }
31 AliMuonTrackCuts* MuonTrackCuts();
33 void SetMuonTrackCuts(const AliMuonTrackCuts& trackCuts);
35 Bool_t IsRabsOK(const AliVParticle& part) const;
36 void NameOfIsRabsOK(TString& name) const { name = "RABS"; }
38 Bool_t IsEtaInRange(const AliVParticle& part, Double_t& etamin, Double_t& etamax) const;
39 void NameOfIsEtaInRange(TString& name, Double_t& etamin, Double_t& etamax) const
40 { name.Form("ETA%3.1f-%3.1f",etamin,etamax); }
42 void SetRun(const AliInputEventHandler* eventHandler);
46 void DefineHistogramCollection(const char* eventSelection, const char* triggerClassName,
47 const char* centrality);
49 virtual void FillHistosForTrack(const char* eventSelection, const char* triggerClassName,
50 const char* centrality,
51 const char* trackCutName,
52 const AliVParticle& part);
56 void CreateTrackHisto(const char* eventSelection,
57 const char* triggerClassName,
58 const char* centrality,
59 const char* hname, const char* htitle,
60 Int_t nbinsx, Double_t xmin, Double_t xmax,
61 Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0,
62 Bool_t separatePlusAndMinus=kFALSE) const;
64 Double_t GetTrackTheta(const AliVParticle& particle) const;
66 /* methods prefixed with EA should really not exist at all. They are there
67 only because the some of our base interfaces are shamelessly incomplete or
71 Int_t EAGetNumberOfMuonTracks() const;
73 // Int_t EAGetNumberOfSelectMuonTracks() const;
75 Double_t EAGetTrackDCA(const AliVParticle& particle) const;
79 /// not implemented on purpose
80 AliAnalysisMuMuSingle& operator=(const AliAnalysisMuMuSingle& rhs);
81 /// not implemented on purpose
82 AliAnalysisMuMuSingle(const AliAnalysisMuMuSingle& rhs);
84 AliMuonTrackCuts* fMuonTrackCuts; //! common cuts for muon tracks (from Diego)
85 Bool_t fShouldSeparatePlusAndMinus; // whether or not to histogram mu+ and mu- separately
86 TH2F* fAccEffHisto; // dimuon acc x eff (y vs pt)
88 ClassDef(AliAnalysisMuMuSingle,1) // implementation of AliAnalysisMuMuBase for single mu analysis