]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuMuMinv.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuMinv.h
1 #ifndef ALIANALYSISMUMUMINV_H
2 #define ALIANALYSISMUMUMINV_H
3
4 /**
5  *
6  * \class AliAnalysisMuMuNch
7  * \brief Invariant mass dimuon analysis
8  * \author L. Aphecetche and J. Martin Blanco (Subatech)
9  */
10
11 #include "AliAnalysisMuMuBase.h"
12 #include "AliAnalysisMuMuBinning.h"
13 #include "TString.h"
14 #include "TH2.h"
15
16 class TH2F;
17 class AliVParticle;
18
19 class AliAnalysisMuMuMinv : public AliAnalysisMuMuBase
20 {
21 public:
22
23   AliAnalysisMuMuMinv(TH2* AccEffHisto=0x0, Bool_t computeMeanPt=kFALSE, Int_t systLevel=0);
24   virtual ~AliAnalysisMuMuMinv();
25   
26   Bool_t IsPtInRange(const AliVParticle& t1, const AliVParticle& t2,
27                            Double_t& ptmin, Double_t& ptmax) const;
28   
29   void NameOfIsPtInRange(TString& name, Double_t& ymin, Double_t& ymax) const;
30   
31   Bool_t IsRapidityInRange(const AliVParticle& t1, const AliVParticle& t2) const;
32   void NameOfIsRapidityInRange(TString& name) const { name = "PAIRY"; }
33   
34   Bool_t ShouldCorrectDimuonForAccEff() { return (fAccEffHisto != 0x0); }
35   
36 protected:
37   
38   void DefineHistogramCollection(const char* eventSelection, const char* triggerClassName,
39                                  const char* centrality);
40
41   virtual void FillHistosForPair(const char* eventSelection,const char* triggerClassName,
42                                  const char* centrality,
43                                  const char* pairCutName,
44                                  const AliVParticle& part,
45                                  const AliVParticle& part2);
46   
47   void FillHistosForMCEvent(const char* eventSelection,const char* triggerClassName,const char* centrality);
48   
49 private:
50   
51   void CreateMinvHistograms(const char* eventSelection, const char* triggerClassName, const char* centrality);
52   
53   TString GetMinvHistoName(const AliAnalysisMuMuBinning::Range& r, Bool_t accEffCorrected) const;
54   
55   Double_t GetAccxEff(Double_t pt,Double_t rapidity);
56   
57   Double_t WeightDistribution(Double_t pt,Double_t rapidity);
58   
59   Double_t powerLaw3Par(Double_t *x, Double_t *par);
60   
61   Double_t normPol12Par(Double_t *x, Double_t *par);
62
63 private:
64   Bool_t fcomputeMeanPt;
65   TH2F* fAccEffHisto;
66   
67   Int_t fsystLevel;
68   
69   ClassDef(AliAnalysisMuMuMinv,2) // implementation of AliAnalysisMuMuBase for muon pairs
70 };
71
72 #endif