]>
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) | |
57b34356 | 22 | kTracklets, // event tracklets |
03d23846 | 23 | kPlaneAngle, // event reaction plane angle |
24 | kLeadingPt, // event leading particle momentum | |
25 | kEventCuts, // -- limit of event cuts ---------------------------------------------------- | |
26 | kPt, // pair transverse momentum | |
27 | kPz, // pair longitudinal momentum | |
28 | kInvMass, // pair invariant mass (with reconstructed momenta) | |
29 | kInvMassRes, // pair invariant mass resolution | |
2d21288f | 30 | kInvMassDiff, // pair invariant mass difference (MC - reconstructed) |
03d23846 | 31 | kEta, // pair pseudo-rapidity |
32 | kMt, // pair transverse mass (need a reference mass) | |
33 | kY, // pair rapidity (need a reference mass) | |
34 | kPtRatio, // ratio |pt1 - pt2|/(pt1 + pt2) of daughter transverse momenta | |
35 | kDipAngle, // inverse cosine of the angle between daughter vector momenta | |
36 | kCosThetaStar, // polarization angle | |
37 | kAngleLeading, // angle to leading particle | |
397c0062 | 38 | kFirstDaughterPt, //pt of the first daughter of the pair |
39 | kSecondDaughterPt, //pt of the second daughter of the pair | |
40 | kFirstDaughterP, //p of the first daughter of the pair | |
41 | kSecondDaughterP, //p of the second daughter of the pair | |
213adb92 | 42 | kDCAproduct, // product of the daughter's dca to PV (same in AliRsnValuePair) |
43 | kFirstDaughterDCA, //DCA to PV of the first daughter of the pair | |
44 | kSecondDaughterDCA, //DCA to PV of the second daughter of the pair | |
088ca370 | 45 | kNSisters, // number of daughters (only for MC) |
03d23846 | 46 | kTypes // -- general limit ---------------------------------------------------------- |
47 | }; | |
48 | ||
49 | AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE); | |
61f275d1 | 50 | AliRsnMiniValue(const AliRsnMiniValue ©); |
51 | AliRsnMiniValue &operator=(const AliRsnMiniValue ©); | |
03d23846 | 52 | virtual ~AliRsnMiniValue() { } |
53 | ||
54 | void SetType(EType type) {fType = type;} | |
55 | EType GetType() const {return fType;} | |
61f275d1 | 56 | const char *GetTypeName() const {return TypeName(fType);} |
03d23846 | 57 | Bool_t IsEventValue() const {return (fType < kEventCuts);} |
61f275d1 | 58 | |
03d23846 | 59 | Float_t Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0); |
61f275d1 | 60 | |
61 | static const char *TypeName(EType type); | |
62 | static const char *ValueName(EType type, Bool_t useMC); | |
03d23846 | 63 | |
64 | protected: | |
65 | ||
66 | EType fType; // type from enumeration | |
67 | Bool_t fUseMCInfo; // switch to use rec/sim momentum | |
61f275d1 | 68 | |
03d23846 | 69 | ClassDef(AliRsnMiniValue, 1) // AliRsnMiniValue class |
70 | }; | |
71 | ||
61f275d1 | 72 | inline const char *AliRsnMiniValue::ValueName(EType type, Bool_t useMC) |
03d23846 | 73 | { |
74 | // | |
75 | // Define a criterion to name these object. | |
76 | // They are not managed by the user, since each object is a singleton | |
77 | // | |
78 | ||
61f275d1 | 79 | if (useMC) |
03d23846 | 80 | return Form("MC_%s", TypeName(type)); |
81 | else | |
82 | return TypeName(type); | |
83 | } | |
84 | ||
85 | #endif |