]>
Commit | Line | Data |
---|---|---|
6551594b | 1 | #ifndef ALIDIELECTRONCFDRAW_H |
2 | #define ALIDIELECTRONCFDRAW_H | |
3 | /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | //############################################################# | |
7 | //# # | |
8 | //# Class AliDielectronCF # | |
9 | //# Dielectron Correction Framework Draw helper # | |
10 | //# # | |
11 | //# Authors: # | |
12 | //# Anton Andronic, GSI / A.Andronic@gsi.de # | |
13 | //# Ionut C. Arsene, GSI / I.C.Arsene@gsi.de # | |
14 | //# Julian Book, Uni Ffm / Julian.Book@cern.ch # | |
15 | //# Frederick Kramer, Uni Ffm, / Frederick.Kramer@cern.ch # | |
16 | //# Magnus Mager, CERN / Magnus.Mager@cern.ch # | |
17 | //# WooJin J. Park, GSI / W.J.Park@gsi.de # | |
18 | //# Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch # | |
19 | //# # | |
20 | //############################################################# | |
21 | ||
22 | ||
23 | ||
24 | #include <TNamed.h> | |
572b0139 | 25 | #include <TVectorD.h> |
6551594b | 26 | #include <AliCFContainer.h> |
27 | ||
28 | class TObjArray; | |
29 | class TSeqCollection; | |
a655b716 | 30 | class AliCFEffGrid; |
6551594b | 31 | class TH1; |
32 | ||
33 | class AliCFContainer; | |
34 | ||
35 | class AliDielectronCFdraw : public TNamed { | |
36 | public: | |
37 | AliDielectronCFdraw(); | |
38 | AliDielectronCFdraw(const char* name, const char* title); | |
a655b716 | 39 | AliDielectronCFdraw(AliCFContainer *cont); |
40 | AliDielectronCFdraw(const char* filename); | |
41 | ||
d327d9cd | 42 | virtual ~AliDielectronCFdraw(); |
a655b716 | 43 | |
6551594b | 44 | void SetCFContainer(AliCFContainer * const container) {fCfContainer=container;} |
45 | void SetCFContainers(const TSeqCollection *arr); | |
46 | ||
47 | void SetCFContainers(const char* filename); | |
48 | ||
49 | AliCFContainer* GetCFContainer() const {return fCfContainer;} | |
50 | ||
51 | void SetRangeUser(Int_t ivar, Double_t min, Double_t max, const char* slices=""); | |
52 | void SetRangeUser(const char* varname, Double_t min, Double_t max, const char* slices=""); | |
53 | ||
54 | void UnsetRangeUser(Int_t ivar, const char* slices=""); | |
55 | void UnsetRangeUser(const char* varname, const char* slices=""); | |
56 | ||
66b2c564 | 57 | virtual void Draw(const Option_t* varnames = "") { Draw(varnames,"");} |
5720c765 | 58 | virtual void Print(const Option_t*) const { if (fCfContainer) fCfContainer->Print(""); } |
a655b716 | 59 | //Draw Projections |
66b2c564 | 60 | void Draw(const Option_t* varnames, const char* opt, const char* slices=""); |
6551594b | 61 | void Draw(Int_t var, const char* opt="", const char* slices=""); |
62 | void Draw(Int_t var0, Int_t var1, const char* opt="", const char* slices=""); | |
63 | void Draw(Int_t var0, Int_t var1, Int_t var2, const char* opt="", const char* slices=""); | |
a655b716 | 64 | |
ba15fdfb | 65 | TObjArray* CollectHistosProj(const Option_t* varnames, const char* slices); |
ffbede40 | 66 | TObjArray* CollectHistosProj(const Int_t vars[3], const char* slices); |
d327d9cd | 67 | TObjArray* CollectMinvProj(Int_t slice); |
ffbede40 | 68 | TH1* Project(const Int_t vars[3], Int_t slice); |
2a14a7b1 | 69 | TH1* Project(const Option_t* var, Int_t slice); |
70 | ||
a655b716 | 71 | //Draw efficiencies |
554e40f8 | 72 | void DrawEfficiency(const char* varnames, const char* numerators, Int_t denominator=0, const char* opt="sameleg2"); |
73 | void DrawEfficiency(Int_t var, const char* numerators, Int_t denominator=0, const char* opt="sameleg", Int_t type=0); | |
74 | void DrawEfficiency(Int_t var0, Int_t var1, const char* numerators, Int_t denominator=0, const char* opt="sameleg", Int_t type=0); | |
75 | void DrawEfficiency(Int_t var0, Int_t var1, Int_t var2, const char* numerators, Int_t denominator=0, const char* opt="sameleg", Int_t type=0); | |
a655b716 | 76 | |
ffbede40 | 77 | TObjArray* CollectHistosEff(const Int_t vars[3], const char* numerators, Int_t denominator, Int_t type=0); |
78 | TH1* ProjectEff(const Int_t vars[3]); | |
554e40f8 | 79 | |
80 | Double_t GetAverageEfficiency(Int_t numerator, Int_t denominator, Double_t &effErr); | |
a655b716 | 81 | |
572b0139 | 82 | const TVectorD& GetData() const {return fVdata;} |
a655b716 | 83 | void Draw(const TObjArray *arr, const char* opt=""); |
6551594b | 84 | private: |
85 | AliCFContainer *fCfContainer; // CF container | |
a655b716 | 86 | AliCFEffGrid *fEffGrid; // Efficiency calculation |
572b0139 | 87 | |
88 | TVectorD fVdata; // vector with data, like mean efficiencies | |
a655b716 | 89 | |
6551594b | 90 | AliDielectronCFdraw(const AliDielectronCFdraw &c); |
91 | AliDielectronCFdraw &operator=(const AliDielectronCFdraw &c); | |
92 | ||
93 | ClassDef(AliDielectronCFdraw,0) // CF draw helper class | |
94 | }; | |
95 | ||
96 | // | |
97 | // Inline functions | |
98 | // | |
6551594b | 99 | #endif |
100 |