#ifndef ALIANALYSISMUMUFNORM_H
#define ALIANALYSISMUMUFNORM_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#ifndef ROOT_TString
# include "TString.h"
#endif
#include <set>
#include <vector>
class TObjArray;
class TGraphErrors;
class TGraph;
class AliAnalysisMuMuResult;
class AliCounterCollection;
class AliMergeableCollection;
class AliAnalysisMuMuFnorm : public TObject
{
public:
enum ETriggerType
{
kMB=1,
kMUL=2,
kMSL=3,
kMSH=4
};
AliAnalysisMuMuFnorm(AliCounterCollection& cc,
AliAnalysisMuMuFnorm::ETriggerType triggerType=AliAnalysisMuMuFnorm::kMUL,
const char* ocdbpath="raw://",
Bool_t compactGraphs=kFALSE);
virtual ~AliAnalysisMuMuFnorm();
void ComputeFnorm();
void ComputeCorrectionFactors(Int_t eventSelectionCorrected);
void ComputeFnormOffline(Int_t nstep, Bool_t pileUpCorrected, Int_t eventSelectionCorrected);
void ComputeFnormScalers(Bool_t pileUpCorrected, Int_t eventSelectionCorrected);
void ComputeGraphRelDif(const char* a, const char* b) const;
void ComputeNofEvents(ETriggerType triggerType, Bool_t pileUpCorrected, Int_t eventSelectionCorrected);
void ComputePileUpGraph(ETriggerType tt, Int_t eventSelectionCorrected=0);
void ComputeEventSelectionGraph(ETriggerType tt, Int_t eventSelectionCorrected);
void ComputeResultsFromGraphs();
void ComputeTriggerFractions(ETriggerType triggerType, Bool_t physicsSelectionCorrected);
void ComputeTriggerL0B(ETriggerType tt);
void ComputeTSGraph(ETriggerType tt);
AliMergeableCollection* DetachMC();
void DrawWith2Scales(const char* graphName1, const char* graphName2);
TString GetEventSelectionName(Int_t eventSelectionCorrected) const;
void GetFnorm(Int_t runNumber, const char* eventSelection, Double_t& value, Double_t& error) const;
TGraphErrors* GetGraph(const char* name) const;
void GetPurity(const char* triggerClassName, Int_t runNumber, Double_t& value, Double_t& error, Int_t eventSelectionCorrected) const;
void GetValueAndErrorFromGraph(TGraphErrors* graph,
Int_t runNumber,
Double_t& value,
Double_t& error) const;
AliAnalysisMuMuResult* GetResult(const char* name) const;
AliAnalysisMuMuResult* GetRunIntegratedResult(const TGraphErrors& g, const char* basename="Fnorm");
AliMergeableCollection* MC() const;
void MultiplyGraphs(const char* g1, const char* g2, const char* name="");
TString OCDBPath() const { return fOCDBPath; }
void Print(Option_t* opt="") const;
void ScalerFnorm(Double_t& value, Double_t& error,
Double_t L0bCMUL7, Double_t purityCMUL7, Double_t purityCMUL7error,
Double_t L0bCINT7, Double_t purityCINT7, Double_t purityCINT7error,
Double_t pileUpFactor, Double_t pileUpFactorError);
void ShowFnorm(const TObjArray& a) const;
Bool_t TriggerClassnameTest(const char* triggerClassName, Int_t runNumber) const;
void WeightedMeanGraphs(const char* pattern, const char* name="");
private:
AliAnalysisMuMuFnorm(const AliAnalysisMuMuFnorm& rhs);
AliAnalysisMuMuFnorm& operator=(const AliAnalysisMuMuFnorm& rhs);
TGraphErrors* CreateAndAddGraph(const TString& name,
const TString& title,
const std::vector<double>& vx,
const std::vector<double>& vxerr,
const std::vector<double>& vy,
const std::vector<double>& vyerr) const;
Double_t GetSum(const char* triggerClassName, Int_t runNumber, Int_t eventSelectionCorrected) const;
TString GetTriggerClassName(ETriggerType tt, Int_t runNumber) const;
TString GetTriggerTypeName(ETriggerType tt) const;
std::set<int> RunNumbers() const;
TString MBTriggerClassName(Int_t runNumber) const;
TString MSLTriggerClassName(Int_t runNumber) const;
TString MULTriggerClassName(Int_t runNumber) const;
TString MSHTriggerClassName(Int_t runNumber) const;
private:
AliCounterCollection& fCounterCollection;
mutable AliMergeableCollection* fMergeableCollection;
Bool_t fIsOwner;
TString fOCDBPath;
mutable AliAnalysisMuMuResult* fResult;
Bool_t fIsCompactGraphs;
ETriggerType fReferenceTriggerType;
ClassDef(AliAnalysisMuMuFnorm,0)
};
#endif
AliAnalysisMuMuFnorm.h:10 AliAnalysisMuMuFnorm.h:11 AliAnalysisMuMuFnorm.h:12 AliAnalysisMuMuFnorm.h:13 AliAnalysisMuMuFnorm.h:14 AliAnalysisMuMuFnorm.h:15 AliAnalysisMuMuFnorm.h:16 AliAnalysisMuMuFnorm.h:17 AliAnalysisMuMuFnorm.h:18 AliAnalysisMuMuFnorm.h:19 AliAnalysisMuMuFnorm.h:20 AliAnalysisMuMuFnorm.h:21 AliAnalysisMuMuFnorm.h:22 AliAnalysisMuMuFnorm.h:23 AliAnalysisMuMuFnorm.h:24 AliAnalysisMuMuFnorm.h:25 AliAnalysisMuMuFnorm.h:26 AliAnalysisMuMuFnorm.h:27 AliAnalysisMuMuFnorm.h:28 AliAnalysisMuMuFnorm.h:29 AliAnalysisMuMuFnorm.h:30 AliAnalysisMuMuFnorm.h:31 AliAnalysisMuMuFnorm.h:32 AliAnalysisMuMuFnorm.h:33 AliAnalysisMuMuFnorm.h:34 AliAnalysisMuMuFnorm.h:35 AliAnalysisMuMuFnorm.h:36 AliAnalysisMuMuFnorm.h:37 AliAnalysisMuMuFnorm.h:38 AliAnalysisMuMuFnorm.h:39 AliAnalysisMuMuFnorm.h:40 AliAnalysisMuMuFnorm.h:41 AliAnalysisMuMuFnorm.h:42 AliAnalysisMuMuFnorm.h:43 AliAnalysisMuMuFnorm.h:44 AliAnalysisMuMuFnorm.h:45 AliAnalysisMuMuFnorm.h:46 AliAnalysisMuMuFnorm.h:47 AliAnalysisMuMuFnorm.h:48 AliAnalysisMuMuFnorm.h:49 AliAnalysisMuMuFnorm.h:50 AliAnalysisMuMuFnorm.h:51 AliAnalysisMuMuFnorm.h:52 AliAnalysisMuMuFnorm.h:53 AliAnalysisMuMuFnorm.h:54 AliAnalysisMuMuFnorm.h:55 AliAnalysisMuMuFnorm.h:56 AliAnalysisMuMuFnorm.h:57 AliAnalysisMuMuFnorm.h:58 AliAnalysisMuMuFnorm.h:59 AliAnalysisMuMuFnorm.h:60 AliAnalysisMuMuFnorm.h:61 AliAnalysisMuMuFnorm.h:62 AliAnalysisMuMuFnorm.h:63 AliAnalysisMuMuFnorm.h:64 AliAnalysisMuMuFnorm.h:65 AliAnalysisMuMuFnorm.h:66 AliAnalysisMuMuFnorm.h:67 AliAnalysisMuMuFnorm.h:68 AliAnalysisMuMuFnorm.h:69 AliAnalysisMuMuFnorm.h:70 AliAnalysisMuMuFnorm.h:71 AliAnalysisMuMuFnorm.h:72 AliAnalysisMuMuFnorm.h:73 AliAnalysisMuMuFnorm.h:74 AliAnalysisMuMuFnorm.h:75 AliAnalysisMuMuFnorm.h:76 AliAnalysisMuMuFnorm.h:77 AliAnalysisMuMuFnorm.h:78 AliAnalysisMuMuFnorm.h:79 AliAnalysisMuMuFnorm.h:80 AliAnalysisMuMuFnorm.h:81 AliAnalysisMuMuFnorm.h:82 AliAnalysisMuMuFnorm.h:83 AliAnalysisMuMuFnorm.h:84 AliAnalysisMuMuFnorm.h:85 AliAnalysisMuMuFnorm.h:86 AliAnalysisMuMuFnorm.h:87 AliAnalysisMuMuFnorm.h:88 AliAnalysisMuMuFnorm.h:89 AliAnalysisMuMuFnorm.h:90 AliAnalysisMuMuFnorm.h:91 AliAnalysisMuMuFnorm.h:92 AliAnalysisMuMuFnorm.h:93 AliAnalysisMuMuFnorm.h:94 AliAnalysisMuMuFnorm.h:95 AliAnalysisMuMuFnorm.h:96 AliAnalysisMuMuFnorm.h:97 AliAnalysisMuMuFnorm.h:98 AliAnalysisMuMuFnorm.h:99 AliAnalysisMuMuFnorm.h:100 AliAnalysisMuMuFnorm.h:101 AliAnalysisMuMuFnorm.h:102 AliAnalysisMuMuFnorm.h:103 AliAnalysisMuMuFnorm.h:104 AliAnalysisMuMuFnorm.h:105 AliAnalysisMuMuFnorm.h:106 AliAnalysisMuMuFnorm.h:107 AliAnalysisMuMuFnorm.h:108 AliAnalysisMuMuFnorm.h:109 AliAnalysisMuMuFnorm.h:110 AliAnalysisMuMuFnorm.h:111 AliAnalysisMuMuFnorm.h:112 AliAnalysisMuMuFnorm.h:113 AliAnalysisMuMuFnorm.h:114 AliAnalysisMuMuFnorm.h:115 AliAnalysisMuMuFnorm.h:116 AliAnalysisMuMuFnorm.h:117 AliAnalysisMuMuFnorm.h:118 AliAnalysisMuMuFnorm.h:119 AliAnalysisMuMuFnorm.h:120 AliAnalysisMuMuFnorm.h:121 AliAnalysisMuMuFnorm.h:122 AliAnalysisMuMuFnorm.h:123 AliAnalysisMuMuFnorm.h:124 AliAnalysisMuMuFnorm.h:125 AliAnalysisMuMuFnorm.h:126 AliAnalysisMuMuFnorm.h:127 AliAnalysisMuMuFnorm.h:128 AliAnalysisMuMuFnorm.h:129 AliAnalysisMuMuFnorm.h:130 AliAnalysisMuMuFnorm.h:131 AliAnalysisMuMuFnorm.h:132 AliAnalysisMuMuFnorm.h:133 AliAnalysisMuMuFnorm.h:134 AliAnalysisMuMuFnorm.h:135 AliAnalysisMuMuFnorm.h:136 AliAnalysisMuMuFnorm.h:137 AliAnalysisMuMuFnorm.h:138 AliAnalysisMuMuFnorm.h:139 AliAnalysisMuMuFnorm.h:140 AliAnalysisMuMuFnorm.h:141 AliAnalysisMuMuFnorm.h:142 AliAnalysisMuMuFnorm.h:143 AliAnalysisMuMuFnorm.h:144 AliAnalysisMuMuFnorm.h:145 AliAnalysisMuMuFnorm.h:146 AliAnalysisMuMuFnorm.h:147 AliAnalysisMuMuFnorm.h:148