]>
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 | |
397c0062 | 37 | kFirstDaughterPt, //pt of the first daughter of the pair |
38 | kSecondDaughterPt, //pt of the second daughter of the pair | |
39 | kFirstDaughterP, //p of the first daughter of the pair | |
40 | kSecondDaughterP, //p of the second daughter of the pair | |
213adb92 | 41 | kDCAproduct, // product of the daughter's dca to PV (same in AliRsnValuePair) |
42 | kFirstDaughterDCA, //DCA to PV of the first daughter of the pair | |
43 | kSecondDaughterDCA, //DCA to PV of the second daughter of the pair | |
088ca370 | 44 | kNSisters, // number of daughters (only for MC) |
03d23846 | 45 | kTypes // -- general limit ---------------------------------------------------------- |
46 | }; | |
47 | ||
48 | AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE); | |
61f275d1 | 49 | AliRsnMiniValue(const AliRsnMiniValue ©); |
50 | AliRsnMiniValue &operator=(const AliRsnMiniValue ©); | |
03d23846 | 51 | virtual ~AliRsnMiniValue() { } |
52 | ||
53 | void SetType(EType type) {fType = type;} | |
54 | EType GetType() const {return fType;} | |
61f275d1 | 55 | const char *GetTypeName() const {return TypeName(fType);} |
03d23846 | 56 | Bool_t IsEventValue() const {return (fType < kEventCuts);} |
61f275d1 | 57 | |
03d23846 | 58 | Float_t Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0); |
61f275d1 | 59 | |
60 | static const char *TypeName(EType type); | |
61 | static const char *ValueName(EType type, Bool_t useMC); | |
03d23846 | 62 | |
63 | protected: | |
64 | ||
65 | EType fType; // type from enumeration | |
66 | Bool_t fUseMCInfo; // switch to use rec/sim momentum | |
61f275d1 | 67 | |
03d23846 | 68 | ClassDef(AliRsnMiniValue, 1) // AliRsnMiniValue class |
69 | }; | |
70 | ||
61f275d1 | 71 | inline const char *AliRsnMiniValue::ValueName(EType type, Bool_t useMC) |
03d23846 | 72 | { |
73 | // | |
74 | // Define a criterion to name these object. | |
75 | // They are not managed by the user, since each object is a singleton | |
76 | // | |
77 | ||
61f275d1 | 78 | if (useMC) |
03d23846 | 79 | return Form("MC_%s", TypeName(type)); |
80 | else | |
81 | return TypeName(type); | |
82 | } | |
83 | ||
84 | #endif |