]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnValue.h
fixed sig.segv
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnValue.h
CommitLineData
b9bbd271 1//
2// Class AliRsnValue
3//
4// Definition of a single value which can be computed
5// from any of the defined input objects implemented
6// in the resonance package.
7//
8
9#ifndef ALIRSNVALUE_H
10#define ALIRSNVALUE_H
11
0d73200d 12#include "TNamed.h"
2dab9030 13#include "TArrayD.h"
45bb0283 14#include "AliESDtrackCuts.h"
2dab9030 15
b9bbd271 16class AliRsnPairDef;
2dab9030 17class AliRsnMother;
b9bbd271 18
0d73200d 19class AliRsnValue : public TNamed
b9bbd271 20{
21 public:
22
2dab9030 23 enum EValueType
b9bbd271 24 {
b9bbd271 25 kTrack1P,
26 kTrack2P,
27 kTrack1Pt,
28 kTrack2Pt,
3c07ce75 29 kTrack1Px,
30 kTrack1Py,
31 kTrack1Pz,
32 kTrack2Px,
33 kTrack2Py,
34 kTrack2Pz,
b9bbd271 35 kPairInvMass,
36 kPairInvMassMC,
37 kPairInvMassRes,
38 kPairPt,
39 kPairEta,
40 kPairMt,
41 kPairY,
b8718678 42 kPairPhi,
43 kPairPhiMC,
44 kPairPtRatio,
f9b1a0cc 45 kPairDipAngle,
2e521c29 46 kPairCosThetaStar,
11ba7ebc 47 kAngleToLeading,
48 kLeadingPt,
2467e7c3 49 kQInv,
b9bbd271 50 kEventMult,
a378358c 51 kEventMultESDCuts,
2dab9030 52 kValueTypes
b9bbd271 53 };
54
2dab9030 55 AliRsnValue();
b2b08ca2 56 AliRsnValue(const char *name, EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0);
0d73200d 57 AliRsnValue(const char *name, EValueType type, Double_t min, Double_t max, Double_t step);
b2b08ca2 58 AliRsnValue(const char *name, EValueType type, Int_t n, Double_t *array);
52944696 59 AliRsnValue(const AliRsnValue& copy);
60 AliRsnValue& operator=(const AliRsnValue& copy);
b9bbd271 61 virtual ~AliRsnValue() { }
2dab9030 62
52944696 63 TArrayD GetArray() const {return fArray;}
64 Double_t GetValue() const {return fValue;}
65 EValueType GetValueType() const {return fType;}
66 const AliESDtrackCuts* GetCuts() const {return &fESDCuts;}
b9bbd271 67
2dab9030 68 void SetValueType(EValueType type) {fType = type;}
69 void SetBins(Int_t n, Double_t min, Double_t max);
70 void SetBins(Double_t min, Double_t max, Double_t step);
b2b08ca2 71 void SetBins(Int_t n, Double_t *array);
69fbb331 72 void Set(EValueType type, Int_t n = 0, Double_t min = 0.0, Double_t max = 0.0) {fType = type; SetBins(n, min, max);}
73 void Set(EValueType type, Double_t min, Double_t max, Double_t step) {fType = type; SetBins(min, max, step);}
74 void Set(EValueType type, Int_t n, Double_t *array) {fType = type; SetBins(n, array);}
2dab9030 75
a378358c 76 virtual Bool_t Eval(AliRsnMother *mother, AliRsnPairDef *pairDef, AliRsnEvent *event);
77 virtual Bool_t Eval(AliRsnDaughter *daughter, AliRsnEvent *event);
2941485c 78 virtual void Print(Option_t *option = "") const;
b9bbd271 79
63a2738c 80 protected:
81
45bb0283 82 Double_t fValue; // computed value
83 EValueType fType; // value type
84 TArrayD fArray; // array of bins (when necessary)
85 AliESDtrackCuts fESDCuts; // ESD track cuts used for a way to compute multiplicity
2dab9030 86
b9bbd271 87 // ROOT dictionary
88 ClassDef(AliRsnValue, 1)
89};
90
91#endif