]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/AliRsnMiniValue.h
Adding macro to plot <Ncoll>
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnMiniValue.h
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       kInvMassDiff,   // pair invariant mass difference (MC - reconstructed)
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       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
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
44       kNSisters,    // number of daughters (only for MC)
45       kTypes          // -- general limit ----------------------------------------------------------
46    };
47
48    AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE);
49    AliRsnMiniValue(const AliRsnMiniValue &copy);
50    AliRsnMiniValue &operator=(const AliRsnMiniValue &copy);
51    virtual ~AliRsnMiniValue() { }
52
53    void               SetType(EType type)   {fType = type;}
54    EType              GetType()      const  {return fType;}
55    const char        *GetTypeName()  const  {return TypeName(fType);}
56    Bool_t             IsEventValue() const  {return (fType < kEventCuts);}
57
58    Float_t            Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0);
59
60    static const char *TypeName(EType type);
61    static const char *ValueName(EType type, Bool_t useMC);
62
63 protected:
64
65    EType            fType;            //  type from enumeration
66    Bool_t           fUseMCInfo;       //  switch to use rec/sim momentum
67
68    ClassDef(AliRsnMiniValue, 1)       //  AliRsnMiniValue class
69 };
70
71 inline const char *AliRsnMiniValue::ValueName(EType type, Bool_t useMC)
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
78    if (useMC)
79       return Form("MC_%s", TypeName(type));
80    else
81       return TypeName(type);
82 }
83
84 #endif