KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
KVReactionPlaneEstimator.h
Go to the documentation of this file.
1 #ifndef __KVREACTIONPLANEESTIMATOR_H
2 #define __KVREACTIONPLANEESTIMATOR_H
3 
4 #include "KVVGVectorSum.h"
5 
53 
59  double fProjCMRapidity{0};// rapidity of projectile in CM
60 
61  void init();
63  std::function<double(const KVNucleus*)> weight_function = [&](const KVNucleus* n)
64  {
68  auto rapidity = n->Rapidity() / fProjCMRapidity;
69  if (rapidity > 0.3) return 1.0;
70  else if (rapidity < -0.3) return -1.0;
71  return 0.0;
72  };
73  void fill(const KVNucleus* n)
74  {
75  Add(weight_function(n) * n->GetTransverseMomentum());
76  }
77 public:
79  {
80  init();
81  }
83  {
84  init();
85  }
86 
88 
90  {
93  }
94  TVector3 GetQ() const
95  {
98  }
100  static TF1* GetDeltaPhiRFitFunction();
101 
102  void Init()
103  {
105 
106  if (fProjCMRapidity == 0)
107  Error("Init", "Projectile CM rapidity not set for this variable: %s. Use method SetNormalization() before calculating.",
108  GetName());
109  }
110 
111  ClassDef(KVReactionPlaneEstimator, 1) //Calculates the transverse momentum Q vector of Danielewicz & Odyniec
112 };
113 
114 #endif
int Int_t
double
ROOT::R::TRInterface & r
char Char_t
double Double_t
#define ClassDef(name, id)
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
Estimate of reaction plane orientation using transverse momentum method of Danielewicz & Odyniec.
void fill(const KVNucleus *n)
TVector3 GetQForParticle(const KVNucleus *n)
KVReactionPlaneEstimator(const Char_t *name)
Double_t getvalue_int(Int_t) const
std::function< double(const KVNucleus *)> weight_function
void Add(const TVector3 &obj)
Definition: KVVGObjectSum.h:28
const TVector3 & GetSumObject() const
Definition: KVVGObjectSum.h:56
Global variable calculating sum of 3-dimensional vectors.
Definition: KVVGVectorSum.h:25
virtual const char * GetName() const
virtual void Error(const char *method, const char *msgfmt,...) const
const Int_t n