#ifndef ALIANALYSISMUMURESULT_H
#define ALIANALYSISMUMURESULT_H
#include "TNamed.h"
#include <TString.h>
class TH1;
class THashList;
class TMap;
class AliAnalysisMuMuResult : public TNamed
{
public:
enum EResultMergingMethod { kMean, kSum };
AliAnalysisMuMuResult(const char* name="", const char* title="", AliAnalysisMuMuResult::EResultMergingMethod mergindMethod=AliAnalysisMuMuResult::kMean);
AliAnalysisMuMuResult(const AliAnalysisMuMuResult& rhs);
AliAnalysisMuMuResult& operator=(const AliAnalysisMuMuResult& rhs);
virtual ~AliAnalysisMuMuResult();
Bool_t AdoptSubResult(AliAnalysisMuMuResult* r);
virtual TObject* Clone(const char* newname = "") const;
void Set(const char* name, Double_t value, Double_t errorStat, Double_t rms=0.0);
Int_t HasValue(const char* name, const char* subResultName="") const;
Double_t GetValue(const char* name, const char* subResultName="") const;
Double_t GetErrorStat(const char* name, const char* subResultName="") const;
Double_t GetRMS(const char* name, const char* subResultName="") const;
void Print(Option_t* opt="") const;
AliAnalysisMuMuResult* SubResult(const char* subResultName) const;
TObjArray* SubResults() const { return fSubResults; }
Long64_t Merge(TCollection* list);
AliAnalysisMuMuResult* Mother() const { return fMother; }
THashList* Keys() const;
Double_t Weight() const { return fWeight; }
void SetWeight(Double_t w) { fWeight=w; }
static Double_t ErrorAB(Double_t a, Double_t aerr, Double_t b, Double_t berr);
static Double_t ErrorABC(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror);
static Double_t ErrorABCD(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror,
Double_t d, Double_t derror);
static Double_t ErrorABCDE(Double_t a, Double_t aerr, Double_t b, Double_t berr, Double_t c, Double_t cerror,
Double_t d, Double_t derror, Double_t e, Double_t eerror);
void PrintValue(const char* key, const char* opt, Double_t value, Double_t errorStat, Double_t rms=0.0) const;
void SetAlias(const char* alias) { fAlias = alias; }
TString Alias() const { if ( fAlias.Length()>0) return fAlias; else return GetName(); }
void Include(const char* subResultsList);
void Exclude(const char* subResultsList);
Bool_t IsIncluded(const TString& alias) const;
void Scale(Double_t value);
void SetMergingMethod(AliAnalysisMuMuResult::EResultMergingMethod mergindMethod) { fResultMergingMethod=mergindMethod; }
Bool_t IsValid() const { return fIsValid; }
void Invalidate() { fIsValid = kFALSE; }
void Show(const char* keyPattern);
void Hide(const char* keyPattern);
Bool_t IsValidValue(Double_t val) const;
private:
enum EIndex
{
kValue=0,
kErrorStat=1,
kRMS=2
};
void PrintParticle(const char* particle, const char* opt) const;
TList* SubResultsToBeIncluded() const;
TString GetSubResultNameList() const;
Int_t NofIncludedSubResults(const char* name) const;
private:
TObjArray* fSubResults;
TMap* fMap;
AliAnalysisMuMuResult* fMother;
mutable THashList* fKeys;
Double_t fWeight;
TString fAlias;
mutable TList* fSubResultsToBeIncluded;
EResultMergingMethod fResultMergingMethod;
Bool_t fIsValid;
mutable THashList* fVisibleKeys;
ClassDef(AliAnalysisMuMuResult,14)
};
#endif
AliAnalysisMuMuResult.h:1 AliAnalysisMuMuResult.h:2 AliAnalysisMuMuResult.h:3 AliAnalysisMuMuResult.h:4 AliAnalysisMuMuResult.h:5 AliAnalysisMuMuResult.h:6 AliAnalysisMuMuResult.h:7 AliAnalysisMuMuResult.h:8 AliAnalysisMuMuResult.h:9 AliAnalysisMuMuResult.h:10 AliAnalysisMuMuResult.h:11 AliAnalysisMuMuResult.h:12 AliAnalysisMuMuResult.h:13 AliAnalysisMuMuResult.h:14 AliAnalysisMuMuResult.h:15 AliAnalysisMuMuResult.h:16 AliAnalysisMuMuResult.h:17 AliAnalysisMuMuResult.h:18 AliAnalysisMuMuResult.h:19 AliAnalysisMuMuResult.h:20 AliAnalysisMuMuResult.h:21 AliAnalysisMuMuResult.h:22 AliAnalysisMuMuResult.h:23 AliAnalysisMuMuResult.h:24 AliAnalysisMuMuResult.h:25 AliAnalysisMuMuResult.h:26 AliAnalysisMuMuResult.h:27 AliAnalysisMuMuResult.h:28 AliAnalysisMuMuResult.h:29 AliAnalysisMuMuResult.h:30 AliAnalysisMuMuResult.h:31 AliAnalysisMuMuResult.h:32 AliAnalysisMuMuResult.h:33 AliAnalysisMuMuResult.h:34 AliAnalysisMuMuResult.h:35 AliAnalysisMuMuResult.h:36 AliAnalysisMuMuResult.h:37 AliAnalysisMuMuResult.h:38 AliAnalysisMuMuResult.h:39 AliAnalysisMuMuResult.h:40 AliAnalysisMuMuResult.h:41 AliAnalysisMuMuResult.h:42 AliAnalysisMuMuResult.h:43 AliAnalysisMuMuResult.h:44 AliAnalysisMuMuResult.h:45 AliAnalysisMuMuResult.h:46 AliAnalysisMuMuResult.h:47 AliAnalysisMuMuResult.h:48 AliAnalysisMuMuResult.h:49 AliAnalysisMuMuResult.h:50 AliAnalysisMuMuResult.h:51 AliAnalysisMuMuResult.h:52 AliAnalysisMuMuResult.h:53 AliAnalysisMuMuResult.h:54 AliAnalysisMuMuResult.h:55 AliAnalysisMuMuResult.h:56 AliAnalysisMuMuResult.h:57 AliAnalysisMuMuResult.h:58 AliAnalysisMuMuResult.h:59 AliAnalysisMuMuResult.h:60 AliAnalysisMuMuResult.h:61 AliAnalysisMuMuResult.h:62 AliAnalysisMuMuResult.h:63 AliAnalysisMuMuResult.h:64 AliAnalysisMuMuResult.h:65 AliAnalysisMuMuResult.h:66 AliAnalysisMuMuResult.h:67 AliAnalysisMuMuResult.h:68 AliAnalysisMuMuResult.h:69 AliAnalysisMuMuResult.h:70 AliAnalysisMuMuResult.h:71 AliAnalysisMuMuResult.h:72 AliAnalysisMuMuResult.h:73 AliAnalysisMuMuResult.h:74 AliAnalysisMuMuResult.h:75 AliAnalysisMuMuResult.h:76 AliAnalysisMuMuResult.h:77 AliAnalysisMuMuResult.h:78 AliAnalysisMuMuResult.h:79 AliAnalysisMuMuResult.h:80 AliAnalysisMuMuResult.h:81 AliAnalysisMuMuResult.h:82 AliAnalysisMuMuResult.h:83 AliAnalysisMuMuResult.h:84 AliAnalysisMuMuResult.h:85 AliAnalysisMuMuResult.h:86 AliAnalysisMuMuResult.h:87 AliAnalysisMuMuResult.h:88 AliAnalysisMuMuResult.h:89 AliAnalysisMuMuResult.h:90 AliAnalysisMuMuResult.h:91 AliAnalysisMuMuResult.h:92 AliAnalysisMuMuResult.h:93 AliAnalysisMuMuResult.h:94 AliAnalysisMuMuResult.h:95 AliAnalysisMuMuResult.h:96 AliAnalysisMuMuResult.h:97 AliAnalysisMuMuResult.h:98 AliAnalysisMuMuResult.h:99 AliAnalysisMuMuResult.h:100 AliAnalysisMuMuResult.h:101 AliAnalysisMuMuResult.h:102 AliAnalysisMuMuResult.h:103 AliAnalysisMuMuResult.h:104 AliAnalysisMuMuResult.h:105 AliAnalysisMuMuResult.h:106 AliAnalysisMuMuResult.h:107 AliAnalysisMuMuResult.h:108 AliAnalysisMuMuResult.h:109 AliAnalysisMuMuResult.h:110 AliAnalysisMuMuResult.h:111 AliAnalysisMuMuResult.h:112 AliAnalysisMuMuResult.h:113 AliAnalysisMuMuResult.h:114 AliAnalysisMuMuResult.h:115 AliAnalysisMuMuResult.h:116 AliAnalysisMuMuResult.h:117 AliAnalysisMuMuResult.h:118 AliAnalysisMuMuResult.h:119 AliAnalysisMuMuResult.h:120 AliAnalysisMuMuResult.h:121 AliAnalysisMuMuResult.h:122 AliAnalysisMuMuResult.h:123 AliAnalysisMuMuResult.h:124 AliAnalysisMuMuResult.h:125 AliAnalysisMuMuResult.h:126 AliAnalysisMuMuResult.h:127 AliAnalysisMuMuResult.h:128 AliAnalysisMuMuResult.h:129 AliAnalysisMuMuResult.h:130 AliAnalysisMuMuResult.h:131 AliAnalysisMuMuResult.h:132 AliAnalysisMuMuResult.h:133