]>
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 */ | |
6 | ||
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 | |
29 | kEta, // pair pseudo-rapidity | |
30 | kMt, // pair transverse mass (need a reference mass) | |
31 | kY, // pair rapidity (need a reference mass) | |
32 | kPtRatio, // ratio |pt1 - pt2|/(pt1 + pt2) of daughter transverse momenta | |
33 | kDipAngle, // inverse cosine of the angle between daughter vector momenta | |
34 | kCosThetaStar, // polarization angle | |
35 | kAngleLeading, // angle to leading particle | |
36 | kTypes // -- general limit ---------------------------------------------------------- | |
37 | }; | |
38 | ||
39 | AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE); | |
40 | AliRsnMiniValue(const AliRsnMiniValue& copy); | |
41 | AliRsnMiniValue& operator=(const AliRsnMiniValue& copy); | |
42 | virtual ~AliRsnMiniValue() { } | |
43 | ||
44 | void SetType(EType type) {fType = type;} | |
45 | EType GetType() const {return fType;} | |
46 | const char* GetTypeName() const {return TypeName(fType);} | |
47 | Bool_t IsEventValue() const {return (fType < kEventCuts);} | |
48 | ||
49 | Float_t Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0); | |
50 | ||
51 | static const char* TypeName(EType type); | |
52 | static const char* ValueName(EType type, Bool_t useMC); | |
53 | ||
54 | protected: | |
55 | ||
56 | EType fType; // type from enumeration | |
57 | Bool_t fUseMCInfo; // switch to use rec/sim momentum | |
58 | ||
59 | ClassDef(AliRsnMiniValue, 1) // AliRsnMiniValue class | |
60 | }; | |
61 | ||
62 | inline const char* AliRsnMiniValue::ValueName(EType type, Bool_t useMC) | |
63 | { | |
64 | // | |
65 | // Define a criterion to name these object. | |
66 | // They are not managed by the user, since each object is a singleton | |
67 | // | |
68 | ||
69 | if (useMC) | |
70 | return Form("MC_%s", TypeName(type)); | |
71 | else | |
72 | return TypeName(type); | |
73 | } | |
74 | ||
75 | #endif |