1 #ifndef ALIANALYSISMUMUSPECTRA_H
2 #define ALIANALYSISMUMUSPECTRA_H
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
9 /// author : Laurent Aphecetche (Subatech)
14 #ifndef ALIANALYSISMUMUBINNING_H
15 # include "AliAnalysisMuMuBinning.h"
18 class AliAnalysisMuMuResult;
23 class AliAnalysisMuMuSpectra : public TNamed
26 AliAnalysisMuMuSpectra(const char* name="", const char* title="");
27 AliAnalysisMuMuSpectra(const AliAnalysisMuMuSpectra& rhs);
28 AliAnalysisMuMuSpectra& operator=(const AliAnalysisMuMuSpectra& rhs);
30 virtual ~AliAnalysisMuMuSpectra();
32 Bool_t AdoptResult(const AliAnalysisMuMuBinning::Range& bin, AliAnalysisMuMuResult* result);
34 Bool_t IsEmpty() const;
36 Long64_t Merge(TCollection* list);
38 TH1* Plot(const char* what="NofJpsi", const char* subresult="", Bool_t divideByBinWidth=kTRUE) const;
40 void Print(Option_t* opt="") const;
42 TObjArray* BinContentArray() const { return fBins; }
44 AliAnalysisMuMuBinning* Binning() const { return fBinning; }
46 Bool_t Correct(const AliAnalysisMuMuSpectra& accEff, const char* particle, const char* subResultName="");
48 AliAnalysisMuMuResult* GetResultForBin(const AliAnalysisMuMuBinning::Range& bin) const;
50 AliAnalysisMuMuResult* GetResultForBin(const char* binName) const;
52 Bool_t HasValue(const char* what="NofJpsi") const;
54 void Scale(Double_t value);
56 void SetWeight(Double_t w);
58 Double_t Weight() const { return fWeight; }
61 AliAnalysisMuMuBinning* fBinning; // internal binning
62 TObjArray* fBins; // the results (bin by bin)
63 Double_t fWeight; // weight of this spectra (assumed to be a normalized weight)
65 ClassDef(AliAnalysisMuMuSpectra,2) // class to hold spectra (with its associated binning and errors)