]>
Commit | Line | Data |
---|---|---|
13f28255 | 1 | // |
2 | // Class AliRsn Fcn | |
3 | // | |
4 | // This class defines a base classe to implement a typical computation | |
5 | // which uses the internal RSN package event format (AliRsnEvent). | |
6 | // It contains some default flags which turn out to be useful: | |
7 | // - a flag to select only the "true" pairs (tracks from same resonance) | |
8 | // - a flag to know if the computation is done over two events (mixing) | |
9 | // | |
10 | // Any kind of analysis object should be implemented as inheriting from this | |
11 | // because the AliRsnAnalyzer which executes the analysis will accept a collection | |
12 | // of such objects, in order to have a unique format of processing method | |
13 | // | |
e0baff8c | 14 | // The user who implements a kind of computation type should inherit from |
15 | // this class and override the virtual functions defined in it, which | |
13f28255 | 16 | // initialize the final output histogram and define how to process data. |
17 | // | |
18 | // | |
19 | // author: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it) | |
20 | // | |
21 | ||
4fbb2459 | 22 | #ifndef ALIRSNFUNCTION_H |
23 | #define ALIRSNFUNCTION_H | |
13f28255 | 24 | |
b2028424 | 25 | #include <TClonesArray.h> |
eb079724 | 26 | #include <TH1.h> |
27 | #include <TH2.h> | |
28 | #include <TH3.h> | |
b2028424 | 29 | #include <THnSparse.h> |
5eb970a4 | 30 | #include <TNamed.h> |
13f28255 | 31 | |
32 | #include "AliRsnCut.h" | |
13f28255 | 33 | |
2dab9030 | 34 | class AliRsnValue; |
35 | class AliRsnMother; | |
5eb970a4 | 36 | class AliRsnPairDef; |
13f28255 | 37 | |
2e521c29 | 38 | class AliRsnFunction : public TObject |
13f28255 | 39 | { |
40 | ||
e0baff8c | 41 | public: |
13f28255 | 42 | |
eb079724 | 43 | AliRsnFunction(Bool_t useTH1 = kTRUE); |
13f28255 | 44 | AliRsnFunction(const AliRsnFunction ©); |
eb079724 | 45 | virtual ~AliRsnFunction() { delete fH1; delete fHSparse; } |
5eb970a4 | 46 | const AliRsnFunction& operator=(const AliRsnFunction ©); |
13f28255 | 47 | |
4fbb2459 | 48 | void SetPairDef(AliRsnPairDef * const def) {fPairDef = def;} |
2dab9030 | 49 | void SetPair(AliRsnMother * const pair) {fPair = pair;} |
13f28255 | 50 | |
4fbb2459 | 51 | AliRsnPairDef* GetPairDef() const {return fPairDef;} |
2dab9030 | 52 | AliRsnMother* GetPair() const {return fPair;} |
4fbb2459 | 53 | AliRsnEvent* GetEvent() const {return fEvent;} |
b2028424 | 54 | virtual const char* GetName() const; |
13f28255 | 55 | |
eb079724 | 56 | Bool_t IsUsingTH1() {return fUseTH1;} |
57 | void UseTH1() {fUseTH1 = kTRUE;} | |
58 | void UseSparse() {fUseTH1 = kFALSE;} | |
32992791 | 59 | Bool_t AddAxis(AliRsnValue* const axis); |
b2028424 | 60 | Int_t GetNumberOfAxes() {return fAxisList.GetEntries();} |
eb079724 | 61 | TH1* CreateHistogram(const char *histoName, const char *histoTitle); |
0d73200d | 62 | THnSparseF* CreateHistogramSparse(const char *histoName, const char *histoTitle); |
e0baff8c | 63 | |
5eb970a4 | 64 | Bool_t Fill(); |
e0baff8c | 65 | |
5eb970a4 | 66 | protected: |
e0baff8c | 67 | |
5eb970a4 | 68 | AliRsnPairDef *fPairDef; // reference to used pair definition |
b2028424 | 69 | TClonesArray fAxisList; // list of axis |
e0baff8c | 70 | |
2dab9030 | 71 | AliRsnMother *fPair; // processed pair |
5eb970a4 | 72 | AliRsnEvent *fEvent; // processed event |
13f28255 | 73 | |
eb079724 | 74 | Bool_t fUseTH1; // use TH1 or not? |
75 | Int_t fSize; // number of dim of output histogram | |
76 | TH1 *fH1; // output histogram (standard type) | |
0d73200d | 77 | THnSparseF *fHSparse; // output histogram (sparse type) |
e0baff8c | 78 | |
13f28255 | 79 | // ROOT dictionary |
b2028424 | 80 | ClassDef(AliRsnFunction, 3) |
13f28255 | 81 | }; |
82 | ||
83 | #endif |