]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muondep/AliAnalysisMuMuSpectra.h
move track selection differences from AOD and ESD to corresponding reader
[u/mrichter/AliRoot.git] / PWG / muondep / AliAnalysisMuMuSpectra.h
1 #ifndef ALIANALYSISMUMUSPECTRA_H
2 #define ALIANALYSISMUMUSPECTRA_H
3
4 ///
5 /// AliAnalysisMuMuSpectra : a spectra is a binning (AliAnalysisMuMuBinning)
6 /// and the results per bin (AliAnalysisMuMuResult), and is mergeable, so
7 /// it can be put into an AliMergeableCollection
8 ///
9 /// author : Laurent Aphecetche (Subatech)
10 //
11
12 #include "TNamed.h"
13
14 #ifndef ALIANALYSISMUMUBINNING_H
15 #  include "AliAnalysisMuMuBinning.h"
16 #endif
17
18 class AliAnalysisMuMuResult;
19 class TCollection;
20 class TH1;
21 class TObjArray;
22
23 class AliAnalysisMuMuSpectra : public TNamed
24 {
25 public:
26   AliAnalysisMuMuSpectra(const char* name="", const char* title="");
27   AliAnalysisMuMuSpectra(const AliAnalysisMuMuSpectra& rhs);
28   AliAnalysisMuMuSpectra& operator=(const AliAnalysisMuMuSpectra& rhs);
29   
30   virtual ~AliAnalysisMuMuSpectra();
31
32   void AdoptResult(const AliAnalysisMuMuBinning::Range& bin, AliAnalysisMuMuResult* result);
33
34   Bool_t IsEmpty() const;
35   
36   Long64_t Merge(TCollection* list);
37
38   TH1* Plot(const char* what="NofJpsi", const char* subresult="", Bool_t divideByBinWidth=kTRUE) const;
39
40   void Print(Option_t* opt="") const;
41
42   TObjArray* BinContentArray() const { return fBins; }
43   
44   AliAnalysisMuMuBinning* Binning() const { return fBinning; }
45   
46   Bool_t Correct(const AliAnalysisMuMuSpectra& accEff, const char* particle, const char* subResultName="");
47   
48   AliAnalysisMuMuResult* GetResultForBin(const AliAnalysisMuMuBinning::Range& bin) const;
49   
50   Bool_t HasValue(const char* what="NofJpsi") const;
51   
52   void Scale(Double_t value);
53   
54   void SetWeight(Double_t w);
55   
56   Double_t Weight() const { return fWeight; }
57   
58 private:
59   AliAnalysisMuMuBinning* fBinning; // internal binning
60   TObjArray* fBins; // the results (bin by bin)
61   Double_t fWeight; // weight of this spectra (assumed to be a normalized weight)
62   
63   ClassDef(AliAnalysisMuMuSpectra,2) // class to hold spectra (with its associated binning and errors)
64 };
65
66 #endif