]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuMuSingle.h
Fixing some compilation warnings (Laurent)
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuSingle.h
1 #ifndef ALIANALYSISMUMUSINGLE_H
2 #define ALIANALYSISMUMUSINGLE_H
3
4 /**
5  *
6  * \class AliAnalysisMuMuSingle
7  * 
8  * \brief Histogramming of single muon tracks.
9  *
10  * \author L. Aphecetche (Subatech)
11  *
12  */
13
14 #include "AliAnalysisMuMuBase.h"
15
16 class AliMuonTrackCuts;
17 class TH2F;
18 class TObjArray;
19
20 class AliAnalysisMuMuSingle : public AliAnalysisMuMuBase
21 {
22 public:
23   
24   AliAnalysisMuMuSingle();
25   virtual ~AliAnalysisMuMuSingle();
26   
27   virtual void ShouldSeparatePlusAndMinus(Bool_t value) { fShouldSeparatePlusAndMinus = value; }
28   
29   virtual Bool_t ShouldSeparatePlusAndMinus() const { return fShouldSeparatePlusAndMinus; }
30
31   AliMuonTrackCuts* MuonTrackCuts();
32   
33   void SetMuonTrackCuts(const AliMuonTrackCuts& trackCuts);
34   
35   Bool_t IsRabsOK(const AliVParticle& part) const;
36   void NameOfIsRabsOK(TString& name) const { name = "RABS"; }
37
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); }
41
42   void SetRun(const AliInputEventHandler* eventHandler);
43
44 protected:
45   
46   void DefineHistogramCollection(const char* eventSelection, const char* triggerClassName,
47                                  const char* centrality);
48
49   virtual void FillHistosForTrack(const char* eventSelection, const char* triggerClassName,
50                                   const char* centrality,
51                                   const char* trackCutName,
52                                   const AliVParticle& part);
53
54 private:
55   
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;
63
64   Double_t GetTrackTheta(const AliVParticle& particle) const;
65   
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
68    inadequate...
69    */
70   
71   Int_t EAGetNumberOfMuonTracks() const;
72   
73 //  Int_t EAGetNumberOfSelectMuonTracks() const;
74   
75   Double_t EAGetTrackDCA(const AliVParticle& particle) const;
76      
77 private:
78   
79   /// not implemented on purpose
80   AliAnalysisMuMuSingle& operator=(const AliAnalysisMuMuSingle& rhs);
81   /// not implemented on purpose
82   AliAnalysisMuMuSingle(const AliAnalysisMuMuSingle& rhs);
83   
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)
87   
88   ClassDef(AliAnalysisMuMuSingle,1) // implementation of AliAnalysisMuMuBase for single mu analysis
89 };
90
91 #endif