]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnValueMult.h
ccb31f1d943a5a71b77e571e19c0104502a588dd
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnValueMult.h
1 //
2 // Class AliRsnValueMult
3 //
4 // Inherits from AliRsnValue, and computer multiplicity of the event
5 // in several ways
6 //
7 // Author: A. Pulvirenti
8 // Email : alberto.pulvirenti@ct.infn.it
9 //
10
11 #ifndef ALIRSNVALUEMULT
12 #define ALIRSNVALUEMULT
13
14 #include "AliRsnValue.h"
15 #include "AliESDtrackCuts.h"
16
17 class AliRsnValueMult : public AliRsnValue
18 {
19   public:
20   
21     enum EMode
22     {
23       kESDcuts,
24       kNTracks,
25       kNTracklets
26     };
27     
28     AliRsnValueMult();
29     AliRsnValueMult(const char *name, EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0);
30     AliRsnValueMult(const char *name, EValueType type, Double_t min, Double_t max, Double_t step);
31     AliRsnValueMult(const char *name, EValueType type, Int_t n, Double_t *array);
32     AliRsnValueMult(const AliRsnValueMult& copy) : AliRsnValue(copy),fMode(copy.fMode),fESDcuts(copy.fESDcuts) {}
33     AliRsnValueMult& operator=(const AliRsnValueMult& copy) {AliRsnValue::operator=(copy); fMode=copy.fMode; fESDcuts=copy.fESDcuts;return (*this);}
34     virtual ~AliRsnValueMult() { }
35     
36     AliESDtrackCuts* GetCuts() {return &fESDcuts;}
37     EMode            GetMode() {return fMode;}
38     void             SetMode(EMode mode) {fMode = mode;}
39     
40     virtual Bool_t   Eval(AliRsnMother * const mother, AliRsnPairDef * const pairDef, AliRsnEvent * const event);
41     virtual Bool_t   Eval(AliRsnDaughter * const daughter, AliRsnEvent * const event);
42   
43   protected:
44   
45     EMode           fMode;     // chosen method to compute multiplicity 
46     AliESDtrackCuts fESDcuts;  // ESD track cuts necessary for one of the methods
47     
48   private:
49   
50     ClassDef(AliRsnValueMult,1)
51 };
52
53 #endif