]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnValueStd.h
Implementation of all needed changes in the package in order to speed-up the executio...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnValueStd.h
1 #ifndef ALIRSNVALUESTD_H
2 #define ALIRSNVALUESTD_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 //  Collection of all values which can be computed within the package
10 //
11 ////////////////////////////////////////////////////////////////////////////////
12
13 #include "AliRsnValue.h"
14
15 class AliRsnValueStd : public AliRsnValue {
16 public:
17
18    enum EValueType {
19       kTrackP,               // single track total momentum
20       kTrackPt,              // single track transverse momentum
21       kTrackPtpc,            // single track total momentum in the TPC inner wall
22       kTrackEta,             // single track pseudo-rapidity
23       kTrackY,               // single track rapidity
24       kTrackITSsignal,       // single track ITS signal
25       kTrackTPCsignal,       // single track TPC signal
26       kTrackTOFsignal,       // single track TOF signal
27       kTrackTOFbeta,         // single track beta from TOF
28       kTrackLength,          // single track integrated length
29       kTrackValues,          // --- limit for track values -----------------------------------------
30                              
31       kPairP1,               // total momentum of 1st daughter of a pair
32       kPairP2,               // total momentum of 2nd daughter of a pair
33       kPairP1t,              // transverse momentum of 1st daughter of a pair
34       kPairP2t,              // transverse momentum of 2nd daughter of a pair
35       kPairP1z,              // longitudinal momentum of 1st daughter of a pair
36       kPairP2z,              // longitudinal momentum of 2nd daughter of a pair
37       kPairInvMass,          // pair invariant mass (with reconstructed momenta)
38       kPairInvMassMC,        // pair invariant mass (with MC momenta)
39       kPairInvMassRes,       // pair invariant mass resolution
40       kPairPt,               // pair transverse momentum
41       kPairPz,               // pair longitudinal momentum
42       kPairEta,              // pair pseudo-rapidity
43       kPairMt,               // pair transverse mass (need a reference mass)
44       kPairY,                // pair rapidity (need a reference mass)
45       kPairPhi,              // pair azimuthal angle (with reconstructed momenta)
46       kPairPhiMC,            // pair azimuthal angle (with MC momenta)
47       kPairPtRatio,          // ratio |pt1 - pt2|/(pt1 + pt2) of daughter transverse momenta
48       kPairDipAngle,         // inverse cosine of the angle between daughter vector momenta
49       kPairCosThetaStar,     // polarization angle
50       kPairQInv,             // invariant relative momentum of the two daughters
51       kPairAngleToLeading,   // angle between pair momentum and leading particle
52       kPairValues,           // --- limit for pair values ------------------------------------------
53                              
54       kEventLeadingPt,       // transverse momentum of the event leading particle
55       kEventMult,            // multiplicity computed as the number of tracks
56       kEventMultMC,          // multiplicity from MC
57       kEventMultESDCuts,     // multiplicity of good quality tracks
58       kEventMultSPD,         // multiplicity from SPD
59       kEventVz,              // Z position of event primary vertex
60       kEventCentralityV0,    // event centrality (V0 method)
61       kEventCentralityTrack, // event centrality (tracks method)
62       kEventCentralityCL1,   // event centrality (CL1 method)
63       kValueTypes            // --- limit for event values (and global) ----------------------------
64    };
65
66    AliRsnValueStd();
67    AliRsnValueStd(const char *name, EValueType type, Int_t nbins = 0, Double_t min = 0.0, Double_t max = 0.0);
68    AliRsnValueStd(const char *name, EValueType type, Double_t min, Double_t max, Double_t step);
69    AliRsnValueStd(const char *name, EValueType type, Int_t nbins, Double_t *array);
70    AliRsnValueStd(const AliRsnValueStd& copy);
71    AliRsnValueStd& operator=(const AliRsnValueStd& copy);
72    virtual ~AliRsnValueStd() { /*does nothing, since pointers are not owned by this object*/ }
73
74    EValueType        GetValueType() const           {return fValueType;}
75    const char*       GetValueTypeName() const;
76    TObject*          GetSupportObject()             {return fSupportObject;}
77    void              SetSupportObject(TObject *obj) {fSupportObject = obj;}
78    void              SetValueType(EValueType type)  {fValueType = type; fTargetType = TargetType(type);}
79
80    virtual Bool_t    Eval(TObject *object, Bool_t useMC = kFALSE);
81    virtual void      Print(Option_t *option = "") const;
82    static  RSNTARGET TargetType(EValueType type);
83
84 protected:
85
86    EValueType   fValueType;      // value type
87    TObject     *fSupportObject;  // support object needed for computing some of the values
88
89    ClassDef(AliRsnValueStd, 1)   // AliRsnValueStd class
90 };
91
92 #endif