]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnFunction.h
Missing macro commented out
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnFunction.h
CommitLineData
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 34class AliRsnValue;
35class AliRsnMother;
5eb970a4 36class AliRsnPairDef;
13f28255 37
2e521c29 38class AliRsnFunction : public TObject
13f28255 39{
40
e0baff8c 41 public:
13f28255 42
eb079724 43 AliRsnFunction(Bool_t useTH1 = kTRUE);
13f28255 44 AliRsnFunction(const AliRsnFunction &copy);
eb079724 45 virtual ~AliRsnFunction() { delete fH1; delete fHSparse; }
5eb970a4 46 const AliRsnFunction& operator=(const AliRsnFunction &copy);
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