KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVReactionPlaneEstimator.h
1#ifndef __KVREACTIONPLANEESTIMATOR_H
2#define __KVREACTIONPLANEESTIMATOR_H
3
4#include "KVVGVectorSum.h"
5
54
60 double fProjCMRapidity{0};// rapidity of projectile in CM
61
62 void init();
64 std::function<double(const KVNucleus*)> weight_function = [&](const KVNucleus* n)
65 {
69 auto rapidity = n->Rapidity() / fProjCMRapidity;
70 if (rapidity > 0.3) return 1.0;
71 else if (rapidity < -0.3) return -1.0;
72 return 0.0;
73 };
74 void fill(const KVNucleus* n)
75 {
76 Add(weight_function(n) * n->GetTransverseMomentum());
77 }
78public:
84 {
85 init();
86 }
87
89
91 {
94 }
95 TVector3 GetQ() const
96 {
99 }
102
103 void Init()
104 {
106
107 if (fProjCMRapidity == 0)
108 Error("Init", "Projectile CM rapidity not set for this variable: %s. Use method SetNormalization() before calculating.",
109 GetName());
110 }
111
112 ClassDef(KVReactionPlaneEstimator, 1) //Calculates the transverse momentum Q vector of Danielewicz & Odyniec
113};
114
115#endif
int Int_t
ROOT::R::TRInterface & r
char Char_t
double Double_t
#define ClassDef(name, id)
char name[80]
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126
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)
std::function< double(const KVNucleus *)> weight_function
void Add(const TVector3 &obj)
const TVector3 & GetSumObject() const
Global variable calculating sum of 3-dimensional vectors.
const char * GetName() const override
virtual void Error(const char *method, const char *msgfmt,...) const
const Int_t n