example macros to run on proof
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnMiniValue.h
CommitLineData
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
13class AliRsnMiniPair;
14class AliRsnMiniEvent;
15
16class AliRsnMiniValue : public TNamed {
17public:
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
54protected:
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
62inline 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