KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KVFlowTensor.h
1#ifndef __KVFLOWTENSOR_H
2#define __KVFLOWTENSOR_H
3
4#include "KVVarGlob.h"
5#include "TMatrixDSym.h"
6#include "TVectorT.h"
7
78class KVFlowTensor: public KVVarGlob {
79
81 enum {
84 kRKE
86 mutable TVectorD fEVal;
87 mutable TVector3 fEVec[3];
88 Double_t f(int i) const
89 {
90 return fEVal[i - 1];
91 }
92 const TVector3& e(int i) const
93 {
94 return fEVec[i - 1];
95 }
105
106protected:
108
109public:
110 enum {
120 };
121
122 KVFlowTensor();
123 KVFlowTensor(const Char_t* nom);
124 KVFlowTensor(const KVFlowTensor& a);
125
126 virtual ~KVFlowTensor(void);
127
128 virtual void Copy(TObject& obj) const;
129
131
132 virtual void Init();
133 virtual void Reset();
134 void Calculate();
135
136private:
137 void init_KVFlowTensor();
138public:
139 void fill(const KVNucleus* n);
140 const TRotation& GetAziReacPlaneRotation() const;
141 const TRotation& GetFlowReacPlaneRotation() const;
142
144 {
147
148 fTensor += other.fTensor;
149 fNParts += other.fNParts;
150 return (*this);
151 }
153 {
156
157 return f(i) / sum_val_prop;
158 }
159
160 void Print(Option_t* = "") const;
161
163 {
165 for (int i = 0; i < 3; ++i) {
166 for (int j = 0; j < 3; ++j) {
167 if (TMath::IsNaN(fTensor(i, j))) return kTRUE;
168 }
169 }
170 return kFALSE;
171 }
173 {
174 if (i == 3) return 'I';
175 return 'D';
176 }
177
178 ClassDef(KVFlowTensor, 1) //Kinetic energy flow tensor of Gyulassy et al
179};
180
181
182#endif
int Int_t
bool Bool_t
char Char_t
constexpr Bool_t kFALSE
double Double_t
constexpr Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
Kinetic energy flow tensor of Gyulassy et al and associated shape variables.
Double_t fCoplanarity
TVectorD fEVal
the 3 eigenvalues
Double_t sum_val_prop
Int_t fNParts
number of particles included in tensor
virtual ~KVFlowTensor(void)
Destructor.
Double_t fSphericity
KVFlowTensor & operator=(const KVFlowTensor &a)
Operateur =.
void Print(Option_t *="") const
if opt="tensor", just print contents of tensor
const TRotation & GetFlowReacPlaneRotation() const
virtual void Init()
Initialisation of internal variables, called once before beginning treatment.
void init_KVFlowTensor()
Double_t f(int i) const
Double_t getvalue_int(Int_t) const
const TVector3 & e(int i) const
KVFlowTensor()
Default constructor.
Double_t fSqOutRatio
Gutbrod squeeze-out ratio.
KVFlowTensor & operator+=(const KVFlowTensor &other)
enum KVFlowTensor::@19 weight
Double_t fSqueezeAngle
Gutbrod squeeze angle.
TVector3 fEVec[3]
the 3 eigenvectors
void Calculate()
Calculate eigenvalues & eigenvectors of tensor.
Bool_t fCalculated
virtual void Reset()
Reset internal variables, called before treatment of each event.
virtual void Copy(TObject &obj) const
Copy properties of 'this' object into the KVVarGlob object referenced by 'a'.
Double_t GetNormalisedEigenValue(Int_t i)
const TRotation & GetAziReacPlaneRotation() const
Char_t GetValueType(Int_t i) const
Bool_t HasNaNElements() const
TMatrixDSym fTensor
the tensor
TRotation fAziReacPlane
azimuthal rotation around beam axis to reaction plane
TRotation fFlowReacPlane
rotate XZ to reaction plane, then align Z with flow axis
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126
Base class for all global variable implementations.
Definition KVVarGlob.h:233
Bool_t IsNaN(Double_t x)