CbmRoot
BlastWaveLongitudinal.h
Go to the documentation of this file.
1 #ifndef BLASTWAVELONGITUDINAL_H
2 #define BLASTWAVELONGITUDINAL_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 
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, fT;
20  // double fNorm;
21  double fY2Min, fY2Max;
22  double fEtaMin, fEtaMax;
24  fAcceptance; //fAcceptanceSTS, fAcceptanceSTSTOF;
26  TSpline3 fetaay2;
27  TSpline3 fNormeta, fNormeta4pi;
28 
29 public:
30  BlastWaveLongitudinal(double mass = 0.938,
31  int PDGID = 2212,
32  bool fUseAcc = false,
33  double ymin = -3.,
34  double ymax = 3.,
35  double ycm = 2.,
36  double T = 0.140);
37 
38  virtual ~BlastWaveLongitudinal(void) {}
39 
40 
41  double Geteta(double ay2) {
42  if (ay2 < fY2Min)
43  return fEtaMin;
44  else if (ay2 > fY2Max)
45  return fEtaMax;
46  return fetaay2.Eval(ay2);
47  }
48 
49  double GetA(double multiplicity, double eta) {
50  if (!fUseAcceptance)
51  return multiplicity;
52  else
53  return multiplicity * fNormeta4pi.Eval(eta) / fNormeta.Eval(eta);
54  }
55 
56  double
57  GetAerror(double multiplicity, double eta, double multerr, double etaerr) {
58  if (!fUseAcceptance)
59  return multerr;
60  else
61  return TMath::Sqrt(
62  fNormeta4pi.Eval(eta) / fNormeta.Eval(eta) * fNormeta4pi.Eval(eta)
63  / fNormeta.Eval(eta) * multerr * multerr
64  + multiplicity * multiplicity
65  * (fNormeta4pi.Derivative(eta) / fNormeta.Eval(eta)
66  - fNormeta4pi.Eval(eta) * fNormeta.Derivative(eta)
67  / fNormeta.Eval(eta) / fNormeta.Eval(eta))
68  * (fNormeta4pi.Derivative(eta) / fNormeta.Eval(eta)
69  - fNormeta4pi.Eval(eta) * fNormeta.Derivative(eta)
70  / fNormeta.Eval(eta) / fNormeta.Eval(eta))
71  * etaerr * etaerr);
72  }
73 
74  double fy(double y, double eta);
75 
76  double detady2(double ay2) {
77  if (ay2 < fY2Min)
78  return 0.;
79  else if (ay2 > fY2Max)
80  return 0.;
81  return fetaay2.Derivative(ay2);
82  }
83 
84  double y2Av(double eta);
85  double y2Av2(double eta);
86  double Normalization(double eta);
87  double Normalization4pi(double eta);
88 };
89 
90 #endif
BlastWaveLongitudinal::wlegeta
std::vector< double > wlegeta
Definition: BlastWaveLongitudinal.h:15
BlastWaveLongitudinal::wleg32
std::vector< double > wleg32
Definition: BlastWaveLongitudinal.h:14
BlastWaveLongitudinal::wlag32
std::vector< double > wlag32
Definition: BlastWaveLongitudinal.h:13
BlastWaveLongitudinal::Geteta
double Geteta(double ay2)
Definition: BlastWaveLongitudinal.h:41
BlastWaveLongitudinal::fReconstructionEfficiency
Acceptance::ReconstructionEfficiencyFunction fReconstructionEfficiency
Definition: BlastWaveLongitudinal.h:25
BlastWaveLongitudinal::Normalization
double Normalization(double eta)
Definition: BlastWaveLongitudinal.cxx:144
BlastWaveLongitudinal::detady2
double detady2(double ay2)
Definition: BlastWaveLongitudinal.h:76
BlastWaveLongitudinal::GetAerror
double GetAerror(double multiplicity, double eta, double multerr, double etaerr)
Definition: BlastWaveLongitudinal.h:57
BlastWaveLongitudinal::GetA
double GetA(double multiplicity, double eta)
Definition: BlastWaveLongitudinal.h:49
BlastWaveLongitudinal::fNormeta4pi
TSpline3 fNormeta4pi
Definition: BlastWaveLongitudinal.h:27
BlastWaveLongitudinal::fetaay2
TSpline3 fetaay2
Definition: BlastWaveLongitudinal.h:26
BlastWaveLongitudinal::y2Av2
double y2Av2(double eta)
Definition: BlastWaveLongitudinal.cxx:113
Acceptance::AcceptanceFunction
Definition: Acceptance.h:10
BlastWaveLongitudinal::BlastWaveLongitudinal
BlastWaveLongitudinal(double mass=0.938, int PDGID=2212, bool fUseAcc=false, double ymin=-3., double ymax=3., double ycm=2., double T=0.140)
Definition: BlastWaveLongitudinal.cxx:10
Acceptance::ReconstructionEfficiencyFunction
Definition: Acceptance.h:19
BlastWaveLongitudinal
Definition: BlastWaveLongitudinal.h:12
BlastWaveLongitudinal::xlegeta
std::vector< double > xlegeta
Definition: BlastWaveLongitudinal.h:15
BlastWaveLongitudinal::fNormeta
TSpline3 fNormeta
Definition: BlastWaveLongitudinal.h:27
BlastWaveLongitudinal::fUseAcceptance
bool fUseAcceptance
Definition: BlastWaveLongitudinal.h:18
BlastWaveLongitudinal::fMass
double fMass
Definition: BlastWaveLongitudinal.h:16
BlastWaveLongitudinal::fY2Max
double fY2Max
Definition: BlastWaveLongitudinal.h:21
BlastWaveLongitudinal::fYmax
double fYmax
Definition: BlastWaveLongitudinal.h:19
BlastWaveLongitudinal::fEtaMax
double fEtaMax
Definition: BlastWaveLongitudinal.h:22
Acceptance.h
BlastWaveLongitudinal::fAcceptance
Acceptance::AcceptanceFunction fAcceptance
Definition: BlastWaveLongitudinal.h:24
BlastWaveLongitudinal::Normalization4pi
double Normalization4pi(double eta)
Definition: BlastWaveLongitudinal.cxx:172
BlastWaveLongitudinal::fEtaMin
double fEtaMin
Definition: BlastWaveLongitudinal.h:22
BlastWaveLongitudinal::fPDGID
int fPDGID
Definition: BlastWaveLongitudinal.h:17
BlastWaveLongitudinal::xlag32
std::vector< double > xlag32
Definition: BlastWaveLongitudinal.h:13
BlastWaveLongitudinal::fYmin
double fYmin
Definition: BlastWaveLongitudinal.h:19
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
BlastWaveLongitudinal::xleg32
std::vector< double > xleg32
Definition: BlastWaveLongitudinal.h:14
BlastWaveLongitudinal::fT
double fT
Definition: BlastWaveLongitudinal.h:19
BlastWaveLongitudinal::~BlastWaveLongitudinal
virtual ~BlastWaveLongitudinal(void)
Definition: BlastWaveLongitudinal.h:38
BlastWaveLongitudinal::y2Av
double y2Av(double eta)
Definition: BlastWaveLongitudinal.cxx:87
BlastWaveLongitudinal::fYcm
double fYcm
Definition: BlastWaveLongitudinal.h:19
BlastWaveLongitudinal::fY2Min
double fY2Min
Definition: BlastWaveLongitudinal.h:21
BlastWaveLongitudinal::fy
double fy(double y, double eta)
Definition: BlastWaveLongitudinal.cxx:122