]>
Commit | Line | Data |
---|---|---|
03d23846 | 1 | #ifndef ALIRSNMINIVALUE_H |
2 | #define ALIRSNMINIVALUE_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
61f275d1 | 6 | |
03d23846 | 7 | //////////////////////////////////////////////////////////////////////////////// |
8 | // | |
9 | // Values which depend on 4-momentum of the pair. | |
10 | // | |
11 | //////////////////////////////////////////////////////////////////////////////// | |
12 | ||
13 | class AliRsnMiniPair; | |
14 | class AliRsnMiniEvent; | |
15 | ||
16 | class AliRsnMiniValue : public TNamed { | |
17 | public: | |
18 | ||
19 | enum EType { | |
20 | kVz, // event Z position of primary vertex | |
21 | kMult, // event multiplicity or centrality (depends on task settings) | |
22 | kPlaneAngle, // event reaction plane angle | |
23 | kLeadingPt, // event leading particle momentum | |
24 | kEventCuts, // -- limit of event cuts ---------------------------------------------------- | |
25 | kPt, // pair transverse momentum | |
26 | kPz, // pair longitudinal momentum | |
27 | kInvMass, // pair invariant mass (with reconstructed momenta) | |
28 | kInvMassRes, // pair invariant mass resolution | |
2d21288f | 29 | kInvMassDiff, // pair invariant mass difference (MC - reconstructed) |
03d23846 | 30 | kEta, // pair pseudo-rapidity |
31 | kMt, // pair transverse mass (need a reference mass) | |
32 | kY, // pair rapidity (need a reference mass) | |
33 | kPtRatio, // ratio |pt1 - pt2|/(pt1 + pt2) of daughter transverse momenta | |
34 | kDipAngle, // inverse cosine of the angle between daughter vector momenta | |
35 | kCosThetaStar, // polarization angle | |
36 | kAngleLeading, // angle to leading particle | |
37 | kTypes // -- general limit ---------------------------------------------------------- | |
38 | }; | |
39 | ||
40 | AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE); | |
61f275d1 | 41 | AliRsnMiniValue(const AliRsnMiniValue ©); |
42 | AliRsnMiniValue &operator=(const AliRsnMiniValue ©); | |
03d23846 | 43 | virtual ~AliRsnMiniValue() { } |
44 | ||
45 | void SetType(EType type) {fType = type;} | |
46 | EType GetType() const {return fType;} | |
61f275d1 | 47 | const char *GetTypeName() const {return TypeName(fType);} |
03d23846 | 48 | Bool_t IsEventValue() const {return (fType < kEventCuts);} |
61f275d1 | 49 | |
03d23846 | 50 | Float_t Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0); |
61f275d1 | 51 | |
52 | static const char *TypeName(EType type); | |
53 | static const char *ValueName(EType type, Bool_t useMC); | |
03d23846 | 54 | |
55 | protected: | |
56 | ||
57 | EType fType; // type from enumeration | |
58 | Bool_t fUseMCInfo; // switch to use rec/sim momentum | |
61f275d1 | 59 | |
03d23846 | 60 | ClassDef(AliRsnMiniValue, 1) // AliRsnMiniValue class |
61 | }; | |
62 | ||
61f275d1 | 63 | inline const char *AliRsnMiniValue::ValueName(EType type, Bool_t useMC) |
03d23846 | 64 | { |
65 | // | |
66 | // Define a criterion to name these object. | |
67 | // They are not managed by the user, since each object is a singleton | |
68 | // | |
69 | ||
61f275d1 | 70 | if (useMC) |
03d23846 | 71 | return Form("MC_%s", TypeName(type)); |
72 | else | |
73 | return TypeName(type); | |
74 | } | |
75 | ||
76 | #endif |