#ifndef ALIANALYSISMUMUBASE_H
#define ALIANALYSISMUMUBASE_H
#include "TObject.h"
#include "TString.h"
#include "TProfile.h"
class AliCounterCollection;
class AliAnalysisMuMuBinning;
class AliMergeableCollection;
class AliVParticle;
class AliVEvent;
class AliMCEvent;
class TH1;
class AliInputEventHandler;
class AliAnalysisMuMuCutRegistry;
class AliAnalysisMuMuBase : public TObject
{
public:
AliAnalysisMuMuBase();
virtual ~AliAnalysisMuMuBase() {}
virtual void DefineHistogramCollection(const char* eventSelection,
const char* triggerClassName,
const char* centrality) = 0;
virtual void FillHistosForEvent(const char* ,const char* ,const char* ) {}
virtual void FillHistosForMCEvent(const char* ,const char* ,const char* ) {}
virtual void FillHistosForTrack(const char* ,const char* ,const char* ,
const char* ,
const AliVParticle& ) {}
virtual void FillHistosForPair(const char* ,const char* ,const char* ,
const char* ,
const AliVParticle& ,
const AliVParticle& ) {}
virtual void Init(AliCounterCollection& cc,
AliMergeableCollection& hc,
const AliAnalysisMuMuBinning& binning,
const AliAnalysisMuMuCutRegistry& cutRegister);
virtual void SetEvent(AliVEvent* event, AliMCEvent* mcEvent=0x0);
virtual Bool_t IsHistogramDisabled(const char* hname) const;
virtual Bool_t IsHistogrammingDisabled() const;
virtual void DisableHistograms(const char* pattern="*");
AliVEvent* Event() const { return fEvent; }
AliMCEvent* MCEvent() const { return fMCEvent; }
static const char* MCInputPrefix() { return "MCINPUT" ; }
virtual void SetRun(const AliInputEventHandler* ) {}
virtual void Terminate(Option_t* ="") {}
enum EDataType
{
kHistoForMCInput = (1<<0),
kHistoForData = (1<<1)
};
void SetMC() { fHasMC = kTRUE; }
Bool_t HasMC() const { return fHasMC; }
Bool_t AlwaysTrue(const AliVEvent& ) const { return kTRUE; }
Bool_t AlwaysTrue(const AliVParticle& ) const { return kTRUE; }
Bool_t AlwaysTrue(const AliVParticle& , const AliVParticle& ) const { return kTRUE; }
void NameOfAlwaysTrue(TString& name) const { name = "ALL"; }
Bool_t AlwaysFalse(const AliVEvent& ) const { return kFALSE; }
Bool_t AlwaysFalse(const AliVParticle& ) const { return kFALSE; }
Bool_t AlwaysFalse(const AliVParticle& , const AliVParticle& ) const { return kFALSE; }
void NameOfAlwaysFalse(TString& name) const { name = "NONE"; }
void SetHistogramCollection(AliMergeableCollection* h) { fHistogramCollection = h; }
protected:
void CreateHistos(const TObjArray& paths,
const char* hname, const char* htitle,
Int_t nbinsx, Double_t xmin, Double_t xmax,
Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
void CreateEventHistos(UInt_t dataType,
const char* what,
const char* hname, const char* htitle,
Int_t nbinsx, Double_t xmin, Double_t xmax,
Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
void CreateEventHistos(UInt_t dataType,
const char* eventSelection,
const char* triggerClassName,
const char* centrality,
const char* hname, const char* htitle,
Int_t nbinsx, Double_t xmin, Double_t xmax,
Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
void CreateTrackHistos(UInt_t dataType,
const char* eventSelection,
const char* triggerClassName,
const char* centrality,
const char* hname, const char* htitle,
Int_t nbinsx, Double_t xmin, Double_t xmax,
Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
void CreatePairHistos(UInt_t dataType,
const char* eventSelection,
const char* triggerClassName,
const char* centrality,
const char* hname, const char* htitle,
Int_t nbinsx, Double_t xmin, Double_t xmax,
Int_t nbinsy=-1, Double_t ymin=0.0, Double_t ymax=0.0) const;
TH1* Histo(const char* eventSelection, const char* histoname);
TH1* Histo(const char* eventSelection, const char* triggerClassName, const char* histoname);
TH1* Histo(const char* eventSelection, const char* triggerClassName, const char* cent, const char* histoname);
TH1* Histo(const char* eventSelection, const char* triggerClassName, const char* cent,
const char* what, const char* histoname);
TH1* MCHisto(const char* eventSelection, const char* histoname);
TH1* MCHisto(const char* eventSelection, const char* triggerClassName, const char* histoname);
TH1* MCHisto(const char* eventSelection, const char* triggerClassName, const char* cent, const char* histoname);
TH1* MCHisto(const char* eventSelection, const char* triggerClassName, const char* cent,
const char* what, const char* histoname);
TProfile* Prof(const char* eventSelection, const char* histoname);
TProfile* Prof(const char* eventSelection, const char* triggerClassName, const char* histoname);
TProfile* Prof(const char* eventSelection, const char* triggerClassName, const char* cent, const char* histoname);
TProfile* Prof(const char* eventSelection, const char* triggerClassName, const char* cent,
const char* what, const char* histoname);
TProfile* MCProf(const char* eventSelection, const char* histoname);
TProfile* MCProf(const char* eventSelection, const char* triggerClassName, const char* histoname);
TProfile* MCProf(const char* eventSelection, const char* triggerClassName, const char* cent, const char* histoname);
TProfile* MCProf(const char* eventSelection, const char* triggerClassName, const char* cent,
const char* what, const char* histoname);
Int_t GetNbins(Double_t xmin, Double_t xmax, Double_t xstep);
AliCounterCollection* CounterCollection() const { return fEventCounters; }
AliMergeableCollection* HistogramCollection() const { return fHistogramCollection; }
const AliAnalysisMuMuBinning* Binning() const { return fBinning; }
const AliAnalysisMuMuCutRegistry* CutRegistry() const { return fCutRegistry; }
private:
AliAnalysisMuMuBase& operator=(const AliAnalysisMuMuBase& rhs);
AliAnalysisMuMuBase(const AliAnalysisMuMuBase& rhs);
AliCounterCollection* fEventCounters;
AliMergeableCollection* fHistogramCollection;
const AliAnalysisMuMuBinning* fBinning;
const AliAnalysisMuMuCutRegistry* fCutRegistry;
AliVEvent* fEvent;
AliMCEvent* fMCEvent;
TList* fHistogramToDisable;
Bool_t fHasMC;
ClassDef(AliAnalysisMuMuBase,1)
};
#endif
AliAnalysisMuMuBase.h:100 AliAnalysisMuMuBase.h:101 AliAnalysisMuMuBase.h:102 AliAnalysisMuMuBase.h:103 AliAnalysisMuMuBase.h:104 AliAnalysisMuMuBase.h:105 AliAnalysisMuMuBase.h:106 AliAnalysisMuMuBase.h:107 AliAnalysisMuMuBase.h:108 AliAnalysisMuMuBase.h:109 AliAnalysisMuMuBase.h:110 AliAnalysisMuMuBase.h:111 AliAnalysisMuMuBase.h:112 AliAnalysisMuMuBase.h:113 AliAnalysisMuMuBase.h:114 AliAnalysisMuMuBase.h:115 AliAnalysisMuMuBase.h:116 AliAnalysisMuMuBase.h:117 AliAnalysisMuMuBase.h:118 AliAnalysisMuMuBase.h:119 AliAnalysisMuMuBase.h:120 AliAnalysisMuMuBase.h:121 AliAnalysisMuMuBase.h:122 AliAnalysisMuMuBase.h:123 AliAnalysisMuMuBase.h:124 AliAnalysisMuMuBase.h:125 AliAnalysisMuMuBase.h:126 AliAnalysisMuMuBase.h:127 AliAnalysisMuMuBase.h:128 AliAnalysisMuMuBase.h:129 AliAnalysisMuMuBase.h:130 AliAnalysisMuMuBase.h:131 AliAnalysisMuMuBase.h:132 AliAnalysisMuMuBase.h:133 AliAnalysisMuMuBase.h:134 AliAnalysisMuMuBase.h:135 AliAnalysisMuMuBase.h:136 AliAnalysisMuMuBase.h:137 AliAnalysisMuMuBase.h:138 AliAnalysisMuMuBase.h:139 AliAnalysisMuMuBase.h:140 AliAnalysisMuMuBase.h:141 AliAnalysisMuMuBase.h:142 AliAnalysisMuMuBase.h:143 AliAnalysisMuMuBase.h:144 AliAnalysisMuMuBase.h:145 AliAnalysisMuMuBase.h:146 AliAnalysisMuMuBase.h:147 AliAnalysisMuMuBase.h:148 AliAnalysisMuMuBase.h:149 AliAnalysisMuMuBase.h:150 AliAnalysisMuMuBase.h:151 AliAnalysisMuMuBase.h:152 AliAnalysisMuMuBase.h:153 AliAnalysisMuMuBase.h:154 AliAnalysisMuMuBase.h:155 AliAnalysisMuMuBase.h:156 AliAnalysisMuMuBase.h:157 AliAnalysisMuMuBase.h:158 AliAnalysisMuMuBase.h:159 AliAnalysisMuMuBase.h:160 AliAnalysisMuMuBase.h:161 AliAnalysisMuMuBase.h:162 AliAnalysisMuMuBase.h:163 AliAnalysisMuMuBase.h:164 AliAnalysisMuMuBase.h:165 AliAnalysisMuMuBase.h:166 AliAnalysisMuMuBase.h:167 AliAnalysisMuMuBase.h:168 AliAnalysisMuMuBase.h:169 AliAnalysisMuMuBase.h:170 AliAnalysisMuMuBase.h:171 AliAnalysisMuMuBase.h:172 AliAnalysisMuMuBase.h:173 AliAnalysisMuMuBase.h:174 AliAnalysisMuMuBase.h:175 AliAnalysisMuMuBase.h:176 AliAnalysisMuMuBase.h:177 AliAnalysisMuMuBase.h:178 AliAnalysisMuMuBase.h:179 AliAnalysisMuMuBase.h:180 AliAnalysisMuMuBase.h:181 AliAnalysisMuMuBase.h:182 AliAnalysisMuMuBase.h:183 AliAnalysisMuMuBase.h:184 AliAnalysisMuMuBase.h:185 AliAnalysisMuMuBase.h:186 AliAnalysisMuMuBase.h:187 AliAnalysisMuMuBase.h:188 AliAnalysisMuMuBase.h:189 AliAnalysisMuMuBase.h:190 AliAnalysisMuMuBase.h:191 AliAnalysisMuMuBase.h:192 AliAnalysisMuMuBase.h:193