KaliVeda
Toolkit for HIC analysis
KVFlowTensor.h
1 #ifndef __KVFLOWTENSOR_H
2 #define __KVFLOWTENSOR_H
3 
4 #include "KVVarGlob.h"
5 #include "TMatrixDSym.h"
6 #include "TVectorT.h"
7 
78 class KVFlowTensor: public KVVarGlob {
79 
81  enum {
84  kRKE
85  } weight;
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 
106 protected:
107  Double_t getvalue_int(Int_t) const;
108 
109 public:
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 
136 private:
137  void init_KVFlowTensor();
138 public:
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.
Definition: KVFlowTensor.h:78
const TVector3 & e(int i) const
Definition: KVFlowTensor.h:92
Double_t fCoplanarity
Definition: KVFlowTensor.h:101
TVectorD fEVal
the 3 eigenvalues
Definition: KVFlowTensor.h:86
Double_t sum_val_prop
Definition: KVFlowTensor.h:104
Int_t fNParts
number of particles included in tensor
Definition: KVFlowTensor.h:102
virtual ~KVFlowTensor(void)
Destructor.
Double_t fSphericity
Definition: KVFlowTensor.h:100
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
Definition: KVFlowTensor.h:88
Double_t getvalue_int(Int_t) const
KVFlowTensor()
Default constructor.
Double_t fSqOutRatio
Gutbrod squeeze-out ratio.
Definition: KVFlowTensor.h:99
enum KVFlowTensor::@19 weight
Double_t fSqueezeAngle
Gutbrod squeeze angle.
Definition: KVFlowTensor.h:98
TVector3 fEVec[3]
the 3 eigenvectors
Definition: KVFlowTensor.h:87
void fill(const KVNucleus *n)
void Calculate()
Calculate eigenvalues & eigenvectors of tensor.
Bool_t fCalculated
Definition: KVFlowTensor.h:103
virtual void Reset()
Reset internal variables, called before treatment of each event.
KVFlowTensor & operator+=(const KVFlowTensor &other)
Definition: KVFlowTensor.h:143
virtual void Copy(TObject &obj) const
Copy properties of 'this' object into the KVVarGlob object referenced by 'a'.
Double_t GetNormalisedEigenValue(Int_t i)
Definition: KVFlowTensor.h:152
const TRotation & GetAziReacPlaneRotation() const
Char_t GetValueType(Int_t i) const
Definition: KVFlowTensor.h:172
Bool_t HasNaNElements() const
Definition: KVFlowTensor.h:162
TMatrixDSym fTensor
the tensor
Definition: KVFlowTensor.h:80
TRotation fAziReacPlane
azimuthal rotation around beam axis to reaction plane
Definition: KVFlowTensor.h:96
TRotation fFlowReacPlane
rotate XZ to reaction plane, then align Z with flow axis
Definition: KVFlowTensor.h:97
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)