KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVFlowTensor.h
Go to the documentation of this file.
1 #ifndef __KVFLOWTENSOR_H
2 #define __KVFLOWTENSOR_H
3 
4 #include "KVVarGlob.h"
5 #include "TMatrixDSym.h"
6 #include "TVectorT.h"
7 
77 class KVFlowTensor: public KVVarGlob {
78 
80  enum {
83  kRKE
84  } weight;
85  mutable TVectorD fEVal;
86  mutable TVector3 fEVec[3];
87  Double_t f(int i) const
88  {
89  return fEVal[i - 1];
90  }
91  const TVector3& e(int i) const
92  {
93  return fEVec[i - 1];
94  }
104 
105 protected:
106  Double_t getvalue_int(Int_t) const;
107 
108 public:
109  enum {
119  };
120 
121  KVFlowTensor();
122  KVFlowTensor(const Char_t* nom);
123  KVFlowTensor(const KVFlowTensor& a);
124 
125  virtual ~KVFlowTensor(void);
126 
127  virtual void Copy(TObject& obj) const;
128 
130 
131  virtual void Init();
132  virtual void Reset();
133  void Calculate();
134 
135 private:
136  void init_KVFlowTensor();
137 public:
138  void fill(const KVNucleus* n);
139  const TRotation& GetAziReacPlaneRotation() const;
140  const TRotation& GetFlowReacPlaneRotation() const;
141 
143  {
146 
147  fTensor += other.fTensor;
148  fNParts += other.fNParts;
149  return (*this);
150  }
152  {
155 
156  return f(i) / sum_val_prop;
157  }
158 
159  void Print(Option_t* = "") const;
160 
162  {
164  for (int i = 0; i < 3; ++i) {
165  for (int j = 0; j < 3; ++j) {
166  if (TMath::IsNaN(fTensor(i, j))) return kTRUE;
167  }
168  }
169  return kFALSE;
170  }
172  {
173  if (i == 3) return 'I';
174  return 'D';
175  }
176 
177  ClassDef(KVFlowTensor, 1) //Kinetic energy flow tensor of Gyulassy et al
178 };
179 
180 
181 #endif
int Int_t
char Char_t
const Bool_t kFALSE
bool Bool_t
double Double_t
const 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:77
const TVector3 & e(int i) const
Definition: KVFlowTensor.h:91
Double_t fCoplanarity
Definition: KVFlowTensor.h:100
TVectorD fEVal
the 3 eigenvalues
Definition: KVFlowTensor.h:85
Double_t sum_val_prop
Definition: KVFlowTensor.h:103
Int_t fNParts
number of particles included in tensor
Definition: KVFlowTensor.h:101
virtual ~KVFlowTensor(void)
Destructor.
Double_t fSphericity
Definition: KVFlowTensor.h:99
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:87
Double_t getvalue_int(Int_t) const
KVFlowTensor()
Default constructor.
Double_t fSqOutRatio
Gutbrod squeeze-out ratio.
Definition: KVFlowTensor.h:98
enum KVFlowTensor::@19 weight
Double_t fSqueezeAngle
Gutbrod squeeze angle.
Definition: KVFlowTensor.h:97
TVector3 fEVec[3]
the 3 eigenvectors
Definition: KVFlowTensor.h:86
void fill(const KVNucleus *n)
void Calculate()
Calculate eigenvalues & eigenvectors of tensor.
Bool_t fCalculated
Definition: KVFlowTensor.h:102
virtual void Reset()
Reset internal variables, called before treatment of each event.
KVFlowTensor & operator+=(const KVFlowTensor &other)
Definition: KVFlowTensor.h:142
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:151
const TRotation & GetAziReacPlaneRotation() const
Char_t GetValueType(Int_t i) const
Definition: KVFlowTensor.h:171
Bool_t HasNaNElements() const
Definition: KVFlowTensor.h:161
TMatrixDSym fTensor
the tensor
Definition: KVFlowTensor.h:79
TRotation fAziReacPlane
azimuthal rotation around beam axis to reaction plane
Definition: KVFlowTensor.h:95
TRotation fFlowReacPlane
rotate XZ to reaction plane, then align Z with flow axis
Definition: KVFlowTensor.h:96
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
Base class for all global variable implementations.
Definition: KVVarGlob.h:217
Bool_t IsNaN(Double_t x)