ROOT logo
#ifndef ALIRSNMINIVALUE_H
#define ALIRSNMINIVALUE_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////////////
//
//  Values which depend on 4-momentum of the pair.
//
////////////////////////////////////////////////////////////////////////////////

class AliRsnMiniPair;
class AliRsnMiniEvent;

class AliRsnMiniValue : public TNamed {
public:

   enum EType {
      kVz,            // event Z position of primary vertex
      kMult,          // event multiplicity or centrality (depends on task settings)
      kTracklets,     // event tracklets
      kPlaneAngle,    // event reaction plane angle
      kLeadingPt,     // event leading particle momentum
      kEventCuts,     // -- limit of event cuts ----------------------------------------------------
      kPt,            // pair transverse momentum
      kPz,            // pair longitudinal momentum
      kInvMass,       // pair invariant mass (with reconstructed momenta)
      kInvMassRes,    // pair invariant mass resolution
      kInvMassDiff,   // pair invariant mass difference (MC - reconstructed)
      kEta,           // pair pseudo-rapidity
      kMt,            // pair transverse mass (need a reference mass)
      kY,             // pair rapidity (need a reference mass)
      kPtRatio,       // ratio |pt1 - pt2|/(pt1 + pt2) of daughter transverse momenta
      kDipAngle,      // inverse cosine of the angle between daughter vector momenta
      kCosThetaStar,  // polarization angle
      kAngleLeading,  // angle to leading particle
      kFirstDaughterPt,  //pt of the first daughter of the pair
      kSecondDaughterPt, //pt of the second daughter of the pair
      kFirstDaughterP,   //p of the first daughter of the pair
      kSecondDaughterP,  //p of the second daughter of the pair
      kDCAproduct,    // product of the daughter's dca to PV (same in AliRsnValuePair)
      kFirstDaughterDCA,  //DCA to PV of the first daughter of the pair
      kSecondDaughterDCA, //DCA to PV of the second daughter of the pair
      kNSisters,    // number of daughters (only for MC)
      kTypes          // -- general limit ----------------------------------------------------------
   };

   AliRsnMiniValue(EType type = kTypes, Bool_t useMC = kFALSE);
   AliRsnMiniValue(const AliRsnMiniValue &copy);
   AliRsnMiniValue &operator=(const AliRsnMiniValue &copy);
   virtual ~AliRsnMiniValue() { }

   void               SetType(EType type)   {fType = type;}
   EType              GetType()      const  {return fType;}
   const char        *GetTypeName()  const  {return TypeName(fType);}
   Bool_t             IsEventValue() const  {return (fType < kEventCuts);}

   Float_t            Eval(AliRsnMiniPair *pair, AliRsnMiniEvent *event = 0x0);

   static const char *TypeName(EType type);
   static const char *ValueName(EType type, Bool_t useMC);

protected:

   EType            fType;            //  type from enumeration
   Bool_t           fUseMCInfo;       //  switch to use rec/sim momentum

   ClassDef(AliRsnMiniValue, 1)       //  AliRsnMiniValue class
};

inline const char *AliRsnMiniValue::ValueName(EType type, Bool_t useMC)
{
//
// Define a criterion to name these object.
// They are not managed by the user, since each object is a singleton
//

   if (useMC)
      return Form("MC_%s", TypeName(type));
   else
      return TypeName(type);
}

#endif
 AliRsnMiniValue.h:1
 AliRsnMiniValue.h:2
 AliRsnMiniValue.h:3
 AliRsnMiniValue.h:4
 AliRsnMiniValue.h:5
 AliRsnMiniValue.h:6
 AliRsnMiniValue.h:7
 AliRsnMiniValue.h:8
 AliRsnMiniValue.h:9
 AliRsnMiniValue.h:10
 AliRsnMiniValue.h:11
 AliRsnMiniValue.h:12
 AliRsnMiniValue.h:13
 AliRsnMiniValue.h:14
 AliRsnMiniValue.h:15
 AliRsnMiniValue.h:16
 AliRsnMiniValue.h:17
 AliRsnMiniValue.h:18
 AliRsnMiniValue.h:19
 AliRsnMiniValue.h:20
 AliRsnMiniValue.h:21
 AliRsnMiniValue.h:22
 AliRsnMiniValue.h:23
 AliRsnMiniValue.h:24
 AliRsnMiniValue.h:25
 AliRsnMiniValue.h:26
 AliRsnMiniValue.h:27
 AliRsnMiniValue.h:28
 AliRsnMiniValue.h:29
 AliRsnMiniValue.h:30
 AliRsnMiniValue.h:31
 AliRsnMiniValue.h:32
 AliRsnMiniValue.h:33
 AliRsnMiniValue.h:34
 AliRsnMiniValue.h:35
 AliRsnMiniValue.h:36
 AliRsnMiniValue.h:37
 AliRsnMiniValue.h:38
 AliRsnMiniValue.h:39
 AliRsnMiniValue.h:40
 AliRsnMiniValue.h:41
 AliRsnMiniValue.h:42
 AliRsnMiniValue.h:43
 AliRsnMiniValue.h:44
 AliRsnMiniValue.h:45
 AliRsnMiniValue.h:46
 AliRsnMiniValue.h:47
 AliRsnMiniValue.h:48
 AliRsnMiniValue.h:49
 AliRsnMiniValue.h:50
 AliRsnMiniValue.h:51
 AliRsnMiniValue.h:52
 AliRsnMiniValue.h:53
 AliRsnMiniValue.h:54
 AliRsnMiniValue.h:55
 AliRsnMiniValue.h:56
 AliRsnMiniValue.h:57
 AliRsnMiniValue.h:58
 AliRsnMiniValue.h:59
 AliRsnMiniValue.h:60
 AliRsnMiniValue.h:61
 AliRsnMiniValue.h:62
 AliRsnMiniValue.h:63
 AliRsnMiniValue.h:64
 AliRsnMiniValue.h:65
 AliRsnMiniValue.h:66
 AliRsnMiniValue.h:67
 AliRsnMiniValue.h:68
 AliRsnMiniValue.h:69
 AliRsnMiniValue.h:70
 AliRsnMiniValue.h:71
 AliRsnMiniValue.h:72
 AliRsnMiniValue.h:73
 AliRsnMiniValue.h:74
 AliRsnMiniValue.h:75
 AliRsnMiniValue.h:76
 AliRsnMiniValue.h:77
 AliRsnMiniValue.h:78
 AliRsnMiniValue.h:79
 AliRsnMiniValue.h:80
 AliRsnMiniValue.h:81
 AliRsnMiniValue.h:82
 AliRsnMiniValue.h:83
 AliRsnMiniValue.h:84
 AliRsnMiniValue.h:85