ROOT logo
#ifndef ALIANALYSISMUMUSPECTRA_H
#define ALIANALYSISMUMUSPECTRA_H

///
/// AliAnalysisMuMuSpectra : a spectra is a binning (AliAnalysisMuMuBinning)
/// and the results per bin (AliAnalysisMuMuResult), and is mergeable, so
/// it can be put into an AliMergeableCollection
///
/// author : Laurent Aphecetche (Subatech)
//

#include "TNamed.h"

#ifndef ALIANALYSISMUMUBINNING_H
#  include "AliAnalysisMuMuBinning.h"
#endif

class AliAnalysisMuMuResult;
class TCollection;
class TH1;
class TObjArray;

class AliAnalysisMuMuSpectra : public TNamed
{
public:
  AliAnalysisMuMuSpectra(const char* name="", const char* title="");
  AliAnalysisMuMuSpectra(const AliAnalysisMuMuSpectra& rhs);
  AliAnalysisMuMuSpectra& operator=(const AliAnalysisMuMuSpectra& rhs);
  
  virtual ~AliAnalysisMuMuSpectra();

  Bool_t AdoptResult(const AliAnalysisMuMuBinning::Range& bin, AliAnalysisMuMuResult* result);

  Bool_t IsEmpty() const;
  
  Long64_t Merge(TCollection* list);

  TH1* Plot(const char* what="NofJpsi", const char* subresult="", Bool_t divideByBinWidth=kTRUE) const;

  void Print(Option_t* opt="") const;

  TObjArray* BinContentArray() const { return fBins; }
  
  AliAnalysisMuMuBinning* Binning() const { return fBinning; }
  
  Bool_t Correct(const AliAnalysisMuMuSpectra& accEff, const char* particle, const char* subResultName="");
  
  AliAnalysisMuMuResult* GetResultForBin(const AliAnalysisMuMuBinning::Range& bin) const;

  AliAnalysisMuMuResult* GetResultForBin(const char* binName) const;

  Bool_t HasValue(const char* what="NofJpsi") const;
  
  void Scale(Double_t value);
  
  void SetWeight(Double_t w);
  
  Double_t Weight() const { return fWeight; }
  
private:
  AliAnalysisMuMuBinning* fBinning; // internal binning
  TObjArray* fBins; // the results (bin by bin)
  Double_t fWeight; // weight of this spectra (assumed to be a normalized weight)
  
  ClassDef(AliAnalysisMuMuSpectra,2) // class to hold spectra (with its associated binning and errors)
};

#endif
 AliAnalysisMuMuSpectra.h:1
 AliAnalysisMuMuSpectra.h:2
 AliAnalysisMuMuSpectra.h:3
 AliAnalysisMuMuSpectra.h:4
 AliAnalysisMuMuSpectra.h:5
 AliAnalysisMuMuSpectra.h:6
 AliAnalysisMuMuSpectra.h:7
 AliAnalysisMuMuSpectra.h:8
 AliAnalysisMuMuSpectra.h:9
 AliAnalysisMuMuSpectra.h:10
 AliAnalysisMuMuSpectra.h:11
 AliAnalysisMuMuSpectra.h:12
 AliAnalysisMuMuSpectra.h:13
 AliAnalysisMuMuSpectra.h:14
 AliAnalysisMuMuSpectra.h:15
 AliAnalysisMuMuSpectra.h:16
 AliAnalysisMuMuSpectra.h:17
 AliAnalysisMuMuSpectra.h:18
 AliAnalysisMuMuSpectra.h:19
 AliAnalysisMuMuSpectra.h:20
 AliAnalysisMuMuSpectra.h:21
 AliAnalysisMuMuSpectra.h:22
 AliAnalysisMuMuSpectra.h:23
 AliAnalysisMuMuSpectra.h:24
 AliAnalysisMuMuSpectra.h:25
 AliAnalysisMuMuSpectra.h:26
 AliAnalysisMuMuSpectra.h:27
 AliAnalysisMuMuSpectra.h:28
 AliAnalysisMuMuSpectra.h:29
 AliAnalysisMuMuSpectra.h:30
 AliAnalysisMuMuSpectra.h:31
 AliAnalysisMuMuSpectra.h:32
 AliAnalysisMuMuSpectra.h:33
 AliAnalysisMuMuSpectra.h:34
 AliAnalysisMuMuSpectra.h:35
 AliAnalysisMuMuSpectra.h:36
 AliAnalysisMuMuSpectra.h:37
 AliAnalysisMuMuSpectra.h:38
 AliAnalysisMuMuSpectra.h:39
 AliAnalysisMuMuSpectra.h:40
 AliAnalysisMuMuSpectra.h:41
 AliAnalysisMuMuSpectra.h:42
 AliAnalysisMuMuSpectra.h:43
 AliAnalysisMuMuSpectra.h:44
 AliAnalysisMuMuSpectra.h:45
 AliAnalysisMuMuSpectra.h:46
 AliAnalysisMuMuSpectra.h:47
 AliAnalysisMuMuSpectra.h:48
 AliAnalysisMuMuSpectra.h:49
 AliAnalysisMuMuSpectra.h:50
 AliAnalysisMuMuSpectra.h:51
 AliAnalysisMuMuSpectra.h:52
 AliAnalysisMuMuSpectra.h:53
 AliAnalysisMuMuSpectra.h:54
 AliAnalysisMuMuSpectra.h:55
 AliAnalysisMuMuSpectra.h:56
 AliAnalysisMuMuSpectra.h:57
 AliAnalysisMuMuSpectra.h:58
 AliAnalysisMuMuSpectra.h:59
 AliAnalysisMuMuSpectra.h:60
 AliAnalysisMuMuSpectra.h:61
 AliAnalysisMuMuSpectra.h:62
 AliAnalysisMuMuSpectra.h:63
 AliAnalysisMuMuSpectra.h:64
 AliAnalysisMuMuSpectra.h:65
 AliAnalysisMuMuSpectra.h:66
 AliAnalysisMuMuSpectra.h:67
 AliAnalysisMuMuSpectra.h:68