CbmRoot
BlastWave.h
Go to the documentation of this file.
1 #ifndef BLASTWAVE_H
2 #define BLASTWAVE_H
3 
4 //#include <cmath>
5 #include "TMath.h"
6 #include "TSpline.h"
7 #include "common/Acceptance.h"
8 #include <iostream>
9 //#include <omp.h>
10 
11 
12 class BlastWave {
13  std::vector<double> xlag32, wlag32;
14  std::vector<double> xleg32, wleg32;
15  std::vector<double> xlegeta, wlegeta;
16  double fMass;
17  int fPDGID;
19  double fYmin, fYmax, fYcm, fEtaMax;
20  // double fNorm;
22  fAcceptance; //fAcceptanceSTS, fAcceptanceSTSTOF;
24  TSpline3 fTamt;
25  TSpline3 fNormT, fNormT4pi;
26 
27 public:
28  BlastWave(double mass = 0.938,
29  int PDGID = 2212,
30  bool fUseAcc = false,
31  double ymin = -3.,
32  double ymax = 3.,
33  double ycm = 2.,
34  double etam = 0.8);
35 
36  virtual ~BlastWave(void) {}
37 
38  double GetT(double amt) { return fTamt.Eval(amt); }
39 
40  double GetA(double multiplicity, double T) {
41  if (!fUseAcceptance)
42  return multiplicity;
43  else
44  return multiplicity * fNormT4pi.Eval(T) / fNormT.Eval(T);
45  }
46 
47  double GetAerror(double multiplicity, double T, double multerr, double Terr) {
48  if (!fUseAcceptance)
49  return multerr;
50  else
51  return TMath::Sqrt(
52  fNormT4pi.Eval(T) / fNormT.Eval(T) * fNormT4pi.Eval(T) / fNormT.Eval(T)
53  * multerr * multerr
54  + multiplicity * multiplicity / fNormT.Eval(T) / fNormT.Eval(T)
55  * fNormT4pi.Derivative(T) * fNormT4pi.Derivative(T) * Terr * Terr
56  + multiplicity * multiplicity / fNormT.Eval(T) / fNormT.Eval(T)
57  / fNormT.Eval(T) / fNormT.Eval(T) * fNormT4pi.Eval(T)
58  * fNormT4pi.Eval(T) * fNormT.Derivative(T) * fNormT.Derivative(T)
59  * Terr * Terr);
60  }
61 
62  double fmt(double amt, double T);
63 
64  double dTdmt(double amt) { return fTamt.Derivative(amt); }
65 
66  double mtAv(double T);
67  double mtAv2(double T);
68  double Normalization(double T);
69  double Normalization4pi(double T);
70 };
71 
72 #endif
BlastWave::fYmax
double fYmax
Definition: BlastWave.h:19
BlastWave::fYcm
double fYcm
Definition: BlastWave.h:19
BlastWave::GetAerror
double GetAerror(double multiplicity, double T, double multerr, double Terr)
Definition: BlastWave.h:47
BlastWave::fPDGID
int fPDGID
Definition: BlastWave.h:17
BlastWave::fYmin
double fYmin
Definition: BlastWave.h:19
BlastWave::wleg32
std::vector< double > wleg32
Definition: BlastWave.h:14
BlastWave::dTdmt
double dTdmt(double amt)
Definition: BlastWave.h:64
BlastWave::fmt
double fmt(double amt, double T)
Definition: BlastWave.cxx:106
BlastWave::xlag32
std::vector< double > xlag32
Definition: BlastWave.h:13
BlastWave::mtAv
double mtAv(double T)
Definition: BlastWave.cxx:73
BlastWave::fReconstructionEfficiency
Acceptance::ReconstructionEfficiencyFunction fReconstructionEfficiency
Definition: BlastWave.h:23
BlastWave::fEtaMax
double fEtaMax
Definition: BlastWave.h:19
BlastWave::fNormT4pi
TSpline3 fNormT4pi
Definition: BlastWave.h:25
BlastWave::xlegeta
std::vector< double > xlegeta
Definition: BlastWave.h:15
Acceptance::AcceptanceFunction
Definition: Acceptance.h:10
BlastWave::GetA
double GetA(double multiplicity, double T)
Definition: BlastWave.h:40
Acceptance::ReconstructionEfficiencyFunction
Definition: Acceptance.h:19
BlastWave::Normalization4pi
double Normalization4pi(double T)
Definition: BlastWave.cxx:151
BlastWave::fTamt
TSpline3 fTamt
Definition: BlastWave.h:24
BlastWave::xleg32
std::vector< double > xleg32
Definition: BlastWave.h:14
BlastWave::fUseAcceptance
bool fUseAcceptance
Definition: BlastWave.h:18
BlastWave::fNormT
TSpline3 fNormT
Definition: BlastWave.h:25
BlastWave::~BlastWave
virtual ~BlastWave(void)
Definition: BlastWave.h:36
BlastWave::wlegeta
std::vector< double > wlegeta
Definition: BlastWave.h:15
BlastWave::mtAv2
double mtAv2(double T)
Definition: BlastWave.cxx:97
Acceptance.h
BlastWave::wlag32
std::vector< double > wlag32
Definition: BlastWave.h:13
BlastWave::fMass
double fMass
Definition: BlastWave.h:16
BlastWave::Normalization
double Normalization(double T)
Definition: BlastWave.cxx:126
BlastWave::BlastWave
BlastWave(double mass=0.938, int PDGID=2212, bool fUseAcc=false, double ymin=-3., double ymax=3., double ycm=2., double etam=0.8)
Definition: BlastWave.cxx:10
BlastWave
Definition: BlastWave.h:12
BlastWave::fAcceptance
Acceptance::AcceptanceFunction fAcceptance
Definition: BlastWave.h:22
BlastWave::GetT
double GetT(double amt)
Definition: BlastWave.h:38