]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AliAnalysisMuMuJpsiResult.h
Keep track of used tracks also when adding normal tracks, not only secondaries
[u/mrichter/AliRoot.git] / PWG / muondep / AliAnalysisMuMuJpsiResult.h
1 #ifndef ALIANALYSISMUMUJPSIRESULT_H
2 #define ALIANALYSISMUMUJPSIRESULT_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ///
8 /// AliAnalysisMuMuJpsiResult : helper class to store Jpsi results from
9 /// AliAnalysisTaskMuMu
10 ///
11 /// author : Laurent Aphecetche (Subatech)
12
13 #include "TNamed.h"
14 #include <TString.h>
15 #include "AliAnalysisMuMuResult.h"
16 #include "AliAnalysisMuMuBinning.h"
17
18 class TH1;
19 class THashList;
20 class TF1;
21 class TMap;
22
23 class AliAnalysisMuMuJpsiResult : public AliAnalysisMuMuResult
24 {
25   
26 public:
27   
28   AliAnalysisMuMuJpsiResult(TRootIOCtor* io);
29   
30   AliAnalysisMuMuJpsiResult(const TH1& hminv);
31
32   AliAnalysisMuMuJpsiResult(const TH1& hminv,
33                         const char* fitType,
34                         Int_t nrebin);
35
36   AliAnalysisMuMuJpsiResult(const TH1& hminv,
37                         const char* triggerClass,
38                         const char* eventSelection,
39                         const char* pairSelection,
40                         const char* centSelection,
41                         const AliAnalysisMuMuBinning::Range& bin);
42   
43   AliAnalysisMuMuJpsiResult(const AliAnalysisMuMuJpsiResult& rhs);
44   AliAnalysisMuMuJpsiResult& operator=(const AliAnalysisMuMuJpsiResult& rhs);
45   
46   virtual ~AliAnalysisMuMuJpsiResult();
47
48   virtual TObject* Clone(const char* newname = "") const;
49   
50   Bool_t Correct(const AliAnalysisMuMuJpsiResult& other, const char* particle, const char* subResultName="");
51   
52   TH1* Minv() const { return fMinv; }
53   
54   Int_t NofTriggers() const;
55   
56   void SetNofTriggers(Int_t n);
57   
58   void Print(Option_t* opt="") const;
59   
60   Bool_t AddFit(const char* fitType, Int_t npar=0, Double_t* par=0x0);
61
62   AliAnalysisMuMuJpsiResult* CountJpsi(TH1& h);
63
64   AliAnalysisMuMuJpsiResult*  FitJpsi(TH1& h);
65
66   AliAnalysisMuMuJpsiResult* FitJpsiNA48(const TH1& h);
67   AliAnalysisMuMuJpsiResult* FitJpsiCB2VWG(const TH1& h);
68   AliAnalysisMuMuJpsiResult* FitJpsi2CB2VWG(const TH1& h, Double_t alphaLow=-1.0, Double_t nLow=-1.0, Double_t alphaUp=-1.0, Double_t nUp=-1.0);
69   
70   AliAnalysisMuMuJpsiResult* FitJpsiGCBE(TH1& h);
71   
72   Int_t NofRuns() const;
73   
74   void SetNofRuns(int n);
75   
76   const AliAnalysisMuMuBinning::Range& Bin() const;
77
78   void SetBin(const AliAnalysisMuMuBinning::Range& bin);
79   
80   void SetNofInputParticles(const char* particle, int n);
81
82   void SetNofInputParticles(const TH1& hminv);
83
84   void SetMinv(const TH1& hminv);
85
86   Long64_t Merge(TCollection* list);
87
88   static Double_t CountParticle(const TH1& hminv, const char* particle, Double_t sigma=-1.0);
89   
90   virtual AliAnalysisMuMuJpsiResult* Mother() const { return static_cast<AliAnalysisMuMuJpsiResult*>(AliAnalysisMuMuResult::Mother()); }
91
92   void PrintValue(const char* key, const char* opt, Double_t value, Double_t errorStat, Double_t rms=0.0) const;
93   
94 private:
95   
96   enum EIndex
97   {
98     kValue=0,
99     kErrorStat=1
100   };
101   
102   void PrintParticle(const char* particle, const char* opt) const;
103
104 private:
105   Int_t fNofRuns; // number of runs used to get this result
106   Int_t fNofTriggers; // number of trigger analyzed
107   TH1* fMinv; // invariant mass spectrum
108   AliAnalysisMuMuBinning::Range fBin; // bin range
109   Int_t fRebin; // rebin level of minv spectra
110   
111   TString fTriggerClass; // trigger class for this result
112   TString fEventSelection; // event selection for this result
113   TString fPairSelection; // pair selection for this result
114   TString fCentralitySelection; // centrality selection for this result
115
116   ClassDef(AliAnalysisMuMuJpsiResult,1) // a class to hold invariant mass analysis results (counts, yields, AccxEff, R_AB, etc...)
117 };
118
119 #endif