#ifndef ALIDIELECTRONHISTOS_H
#define ALIDIELECTRONHISTOS_H
#include <Rtypes.h>
#include <TNamed.h>
#include <THashList.h>
#include <TVectorDfwd.h>
#include <THnBase.h>
#include <TBits.h>
class TH1;
class TString;
class TList;
class AliDielectronHistos : public TNamed {
public:
AliDielectronHistos();
AliDielectronHistos(const char* name, const char* title);
virtual ~AliDielectronHistos();
enum {kNoAutoFill=1000000000, kNoProfile=999, kNoWeights=998};
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
Int_t nbinsX, Double_t xmin, Double_t xmax,
UInt_t valTypeX, Bool_t logBinX=kFALSE, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
Int_t nbinsX, Double_t xmin, Double_t xmax,
Int_t nbinsY, Double_t ymin, Double_t ymax,
UInt_t valTypeX, UInt_t valTypeY,
Bool_t logBinX=kFALSE, Bool_t logBinY=kFALSE, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
Int_t nbinsX, Double_t xmin, Double_t xmax,
Int_t nbinsY, Double_t ymin, Double_t ymax,
Int_t nbinsZ, Double_t zmin, Double_t zmax,
UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ,
Bool_t logBinX=kFALSE, Bool_t logBinY=kFALSE, Bool_t logBinZ=kFALSE, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
const char* binning, UInt_t valTypeX, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
const TVectorD * const binsX, UInt_t valTypeX, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
const TVectorD * const binsX, const TVectorD * const binsY,
UInt_t valTypeX, UInt_t valTypeY, TString option="",
UInt_t valTypeW=kNoWeights);
void UserProfile(const char* histClass,const char *name, const char* title,
UInt_t valTypeP,
const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ, TString option="",
UInt_t valTypeW=kNoWeights);
void UserHistogram(const char* histClass, Int_t ndim, Int_t *bins, Double_t *mins, Double_t *maxs, UInt_t *vars, UInt_t valTypeW=kNoWeights);
void UserSparse( const char* histClass, Int_t ndim, Int_t *bins, Double_t *mins, Double_t *maxs, UInt_t *vars, UInt_t valTypeW=kNoWeights);
void UserHistogram(const char* histClass, Int_t ndim, TObjArray *limits, UInt_t *vars, UInt_t valTypeW=kNoWeights);
void UserSparse( const char* histClass, Int_t ndim, TObjArray *limits, UInt_t *vars, UInt_t valTypeW=kNoWeights);
void UserHistogram(const char* histClass,const char *name, const char* title,
Int_t nbinsX, Double_t xmin, Double_t xmax, UInt_t valTypeX, Bool_t logBinX=kFALSE,
UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,nbinsX,xmin,xmax,valTypeX,logBinX,"",valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
Int_t nbinsX, Double_t xmin, Double_t xmax, Int_t nbinsY, Double_t ymin, Double_t ymax,
UInt_t valTypeX, UInt_t valTypeY, Bool_t logBinX=kFALSE, Bool_t logBinY=kFALSE,
UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,nbinsX,xmin,xmax,nbinsY,ymin,ymax,valTypeX,valTypeY,logBinX,logBinY,valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
Int_t nbinsX, Double_t xmin, Double_t xmax, Int_t nbinsY, Double_t ymin, Double_t ymax,
Int_t nbinsZ, Double_t zmin, Double_t zmax, UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ,
Bool_t logBinX=kFALSE, Bool_t logBinY=kFALSE, Bool_t logBinZ=kFALSE,
UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,nbinsX,xmin,xmax,nbinsY,ymin,ymax,nbinsZ,zmin,zmax,valTypeX,valTypeY,valTypeZ,logBinX,logBinY,logBinZ,valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
const char* binning, UInt_t valTypeX, UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,binning,valTypeX,"",valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
const TVectorD * const binsX, UInt_t valTypeX, UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,binsX,valTypeX,"",valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
const TVectorD * const binsX, const TVectorD * const binsY, UInt_t valTypeX, UInt_t valTypeY,
UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,binsX,binsY,valTypeX,valTypeY,"",valTypeW); }
void UserHistogram(const char* histClass,const char *name, const char* title,
const TVectorD * const binsX, const TVectorD * const binsY, const TVectorD * const binsZ,
UInt_t valTypeX, UInt_t valTypeY, UInt_t valTypeZ,
UInt_t valTypeW=kNoWeights)
{ UserProfile(histClass,name,title,kNoProfile,binsX,binsY,binsZ,valTypeX,valTypeY,valTypeZ,"",valTypeW); }
void UserHistogram(const char* histClass, TObject* hist, UInt_t valTypes=kNoAutoFill);
void UserHistogram(const char* histClass,const char *name, const char* title,
Int_t nbinsX, Double_t xmin, Double_t xmax)
{ UserProfile(histClass,name,title,kNoProfile,nbinsX,xmin,xmax,kNoAutoFill); }
void UserHistogram(const char* histClass,const char *name, const char* title,
Int_t nbinsX, Double_t xmin, Double_t xmax,
Int_t nbinsY, Double_t ymin, Double_t ymax)
{ UserProfile(histClass,name,title,kNoProfile,nbinsX,xmin,xmax,nbinsY,ymin,ymax,kNoAutoFill,kNoAutoFill); }
void Fill(const char* histClass, const char* name, Double_t xval);
void Fill(const char* histClass, const char* name, Double_t xval, Double_t yval);
void Fill(const char* histClass, const char* name, Double_t xval, Double_t yval, Double_t zval);
void FillClass(const char* histClass, Int_t nValues, const Double_t *values);
TObject* GetHist(const char* histClass, const char* name) const;
TH1* GetHistogram(const char* histClass, const char* name) const;
TObject* GetHist(const char* cutClass, const char* histClass, const char* name) const;
TH1* GetHistogram(const char* cutClass, const char* histClass, const char* name) const;
void SetHistogramList(THashList &list, Bool_t setOwner=kTRUE);
void ResetHistogramList(){fHistoList.Clear();}
const THashList* GetHistogramList() const {return &fHistoList;}
void SetList(TList * const list) { fList=list; }
TList *GetList() const { return fList; }
TBits *GetUsedVars() const { return fUsedVars; }
void AddClass(const char* histClass);
void DumpToFile(const char* file="histos.root");
void ReadFromFile(const char* file="histos.root");
virtual void Print(const Option_t* option = "") const;
virtual void Draw(const Option_t* option = "");
virtual void DrawSame(const char* histName, const Option_t *opt="leg can");
void SetReservedWords(const char* words);
Bool_t SetCutClass(const char* cutClass);
static void StoreVariables(TObject *obj, UInt_t valType[20]);
static void StoreVariables(TH1 *obj, UInt_t valType[20]);
static void StoreVariables(THnBase *obj, UInt_t valType[20]);
static void AdaptNameTitle(TH1 *hist, const char* histClass);
static Int_t GetPrecision(Double_t value);
static void FillValues(TObject *obj, const Double_t *values);
static void FillValues(TH1 *obj, const Double_t *values);
static void FillValues(THnBase *obj, const Double_t *values);
private:
void FillVarArray(TObject *obj, UInt_t *valType);
THashList fHistoList;
TList *fList;
TBits *fUsedVars;
TString *fReservedWords;
void UserHistogramReservedWords(const char* histClass, const TObject *hist, UInt_t valTypes);
void FillClass(THashTable *classTable, Int_t nValues, Double_t *values);
void PrintPDF(Option_t* opt);
void PrintStructure() const;
Bool_t IsHistogramOk(const char* classTable, const char* name);
AliDielectronHistos(const AliDielectronHistos &hist);
AliDielectronHistos& operator = (const AliDielectronHistos &hist);
ClassDef(AliDielectronHistos,3)
};
#endif
AliDielectronHistos.h:100 AliDielectronHistos.h:101 AliDielectronHistos.h:102 AliDielectronHistos.h:103 AliDielectronHistos.h:104 AliDielectronHistos.h:105 AliDielectronHistos.h:106 AliDielectronHistos.h:107 AliDielectronHistos.h:108 AliDielectronHistos.h:109 AliDielectronHistos.h:110 AliDielectronHistos.h:111 AliDielectronHistos.h:112 AliDielectronHistos.h:113 AliDielectronHistos.h:114 AliDielectronHistos.h:115 AliDielectronHistos.h:116 AliDielectronHistos.h:117 AliDielectronHistos.h:118 AliDielectronHistos.h:119 AliDielectronHistos.h:120 AliDielectronHistos.h:121 AliDielectronHistos.h:122 AliDielectronHistos.h:123 AliDielectronHistos.h:124 AliDielectronHistos.h:125 AliDielectronHistos.h:126 AliDielectronHistos.h:127 AliDielectronHistos.h:128 AliDielectronHistos.h:129 AliDielectronHistos.h:130 AliDielectronHistos.h:131 AliDielectronHistos.h:132 AliDielectronHistos.h:133 AliDielectronHistos.h:134 AliDielectronHistos.h:135 AliDielectronHistos.h:136 AliDielectronHistos.h:137 AliDielectronHistos.h:138 AliDielectronHistos.h:139 AliDielectronHistos.h:140 AliDielectronHistos.h:141 AliDielectronHistos.h:142 AliDielectronHistos.h:143 AliDielectronHistos.h:144 AliDielectronHistos.h:145 AliDielectronHistos.h:146 AliDielectronHistos.h:147 AliDielectronHistos.h:148 AliDielectronHistos.h:149 AliDielectronHistos.h:150 AliDielectronHistos.h:151 AliDielectronHistos.h:152 AliDielectronHistos.h:153 AliDielectronHistos.h:154 AliDielectronHistos.h:155 AliDielectronHistos.h:156 AliDielectronHistos.h:157 AliDielectronHistos.h:158 AliDielectronHistos.h:159 AliDielectronHistos.h:160 AliDielectronHistos.h:161 AliDielectronHistos.h:162 AliDielectronHistos.h:163 AliDielectronHistos.h:164 AliDielectronHistos.h:165 AliDielectronHistos.h:166 AliDielectronHistos.h:167 AliDielectronHistos.h:168 AliDielectronHistos.h:169 AliDielectronHistos.h:170 AliDielectronHistos.h:171 AliDielectronHistos.h:172 AliDielectronHistos.h:173 AliDielectronHistos.h:174 AliDielectronHistos.h:175 AliDielectronHistos.h:176 AliDielectronHistos.h:177 AliDielectronHistos.h:178 AliDielectronHistos.h:179 AliDielectronHistos.h:180 AliDielectronHistos.h:181 AliDielectronHistos.h:182 AliDielectronHistos.h:183 AliDielectronHistos.h:184 AliDielectronHistos.h:185 AliDielectronHistos.h:186 AliDielectronHistos.h:187 AliDielectronHistos.h:188 AliDielectronHistos.h:189 AliDielectronHistos.h:190 AliDielectronHistos.h:191 AliDielectronHistos.h:192 AliDielectronHistos.h:193 AliDielectronHistos.h:194 AliDielectronHistos.h:195 AliDielectronHistos.h:196 AliDielectronHistos.h:197 AliDielectronHistos.h:198 AliDielectronHistos.h:199 AliDielectronHistos.h:200 AliDielectronHistos.h:201 AliDielectronHistos.h:202 AliDielectronHistos.h:203 AliDielectronHistos.h:204 AliDielectronHistos.h:205 AliDielectronHistos.h:206 AliDielectronHistos.h:207 AliDielectronHistos.h:208 AliDielectronHistos.h:209 AliDielectronHistos.h:210 AliDielectronHistos.h:211 AliDielectronHistos.h:212 AliDielectronHistos.h:213 AliDielectronHistos.h:214 AliDielectronHistos.h:215 AliDielectronHistos.h:216