]>
Commit | Line | Data |
---|---|---|
5376e016 CP |
1 | #ifndef ALIANALYSISMUMUSINGLE_H |
2 | #define ALIANALYSISMUMUSINGLE_H | |
3 | ||
16560e8e | 4 | #include "AliAnalysisMuMuBase.h" |
5 | ||
5376e016 CP |
6 | /** |
7 | * | |
8 | * \class AliAnalysisMuMuSingle | |
16560e8e | 9 | * |
5376e016 CP |
10 | * \brief Histogramming of single muon tracks. |
11 | * | |
12 | * \author L. Aphecetche (Subatech) | |
13 | * | |
14 | */ | |
15 | ||
16560e8e | 16 | #include "AliAnalysisMuonUtility.h" |
5376e016 CP |
17 | |
18 | class AliMuonTrackCuts; | |
19 | class TH2F; | |
20 | class TObjArray; | |
21 | ||
22 | class AliAnalysisMuMuSingle : public AliAnalysisMuMuBase | |
23 | { | |
24 | public: | |
25 | ||
26 | AliAnalysisMuMuSingle(); | |
27 | virtual ~AliAnalysisMuMuSingle(); | |
28 | ||
29 | virtual void ShouldSeparatePlusAndMinus(Bool_t value) { fShouldSeparatePlusAndMinus = value; } | |
30 | ||
31 | virtual Bool_t ShouldSeparatePlusAndMinus() const { return fShouldSeparatePlusAndMinus; } | |
32 | ||
33 | AliMuonTrackCuts* MuonTrackCuts(); | |
34 | ||
35 | void SetMuonTrackCuts(const AliMuonTrackCuts& trackCuts); | |
36 | ||
16560e8e | 37 | Bool_t IsPDCAOK(const AliVParticle& part); |
38 | void NameOfIsPDCAOK(TString& name) const { name = "PDCA";} | |
39 | ||
40 | Bool_t IsMatchingTriggerAnyPt(const AliVParticle& part) const { return ( AliAnalysisMuonUtility::GetMatchTrigger(&part) >= 1 ); } | |
41 | void NameOfIsMatchingTriggerAnyPt(TString& name) const { name = "MATCHANY";} | |
42 | ||
43 | Bool_t IsMatchingTriggerLowPt(const AliVParticle& part) const { return ( AliAnalysisMuonUtility::GetMatchTrigger(&part) >= 2 ); } | |
44 | void NameOfIsMatchingTriggerLowPt(TString& name) const { name = "MATCHLOW";} | |
45 | ||
46 | Bool_t IsMatchingTriggerHighPt(const AliVParticle& part) const { return ( AliAnalysisMuonUtility::GetMatchTrigger(&part) >= 3 ); } | |
47 | void NameOfIsMatchingTriggerHighPt(TString& name) const { name = "MATCHHIGH";} | |
48 | ||
5376e016 CP |
49 | Bool_t IsRabsOK(const AliVParticle& part) const; |
50 | void NameOfIsRabsOK(TString& name) const { name = "RABS"; } | |
51 | ||
16560e8e | 52 | Bool_t IsEtaInRange(const AliVParticle& part) const; |
53 | void NameOfIsEtaInRange(TString& name) const | |
54 | { name = "ETA"; } | |
5376e016 CP |
55 | |
56 | void SetRun(const AliInputEventHandler* eventHandler); | |
57 | ||
58 | protected: | |
59 | ||
60 | void DefineHistogramCollection(const char* eventSelection, const char* triggerClassName, | |
61 | const char* centrality); | |
62 | ||
63 | virtual void FillHistosForTrack(const char* eventSelection, const char* triggerClassName, | |
64 | const char* centrality, | |
65 | const char* trackCutName, | |
66 | const AliVParticle& part); | |
67 | ||
68 | private: | |
69 | ||
70 | void CreateTrackHisto(const char* eventSelection, | |
71 | const char* triggerClassName, | |
72 | const char* centrality, | |
73 | const char* hname, const char* htitle, | |
74 | Int_t nbinsx, Double_t xmin, Double_t xmax, | |
75 | Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0, | |
76 | Bool_t separatePlusAndMinus=kFALSE) const; | |
77 | ||
78 | Double_t GetTrackTheta(const AliVParticle& particle) const; | |
79 | ||
80 | /* methods prefixed with EA should really not exist at all. They are there | |
81 | only because the some of our base interfaces are shamelessly incomplete or | |
82 | inadequate... | |
83 | */ | |
84 | ||
85 | Int_t EAGetNumberOfMuonTracks() const; | |
86 | ||
87 | // Int_t EAGetNumberOfSelectMuonTracks() const; | |
88 | ||
89 | Double_t EAGetTrackDCA(const AliVParticle& particle) const; | |
90 | ||
91 | private: | |
0804b4cc | 92 | |
93 | /// not implemented on purpose | |
94 | AliAnalysisMuMuSingle& operator=(const AliAnalysisMuMuSingle& rhs); | |
95 | /// not implemented on purpose | |
96 | AliAnalysisMuMuSingle(const AliAnalysisMuMuSingle& rhs); | |
97 | ||
5376e016 CP |
98 | AliMuonTrackCuts* fMuonTrackCuts; //! common cuts for muon tracks (from Diego) |
99 | Bool_t fShouldSeparatePlusAndMinus; // whether or not to histogram mu+ and mu- separately | |
100 | TH2F* fAccEffHisto; // dimuon acc x eff (y vs pt) | |
101 | ||
102 | ClassDef(AliAnalysisMuMuSingle,1) // implementation of AliAnalysisMuMuBase for single mu analysis | |
103 | }; | |
104 | ||
105 | #endif |