#include "BlastWaveLongitudinal.h" #include namespace BlastWaveLongitudinalNamespace { #include "../NumericalIntegration.h" } BlastWaveLongitudinal::BlastWaveLongitudinal(double mass, int PDGID, bool UseAcc, double ymin, double ymax, double ycm, double T): xlag32(), wlag32(), xleg32(), wleg32(), xlegeta(), wlegeta(), fMass(mass), fPDGID(PDGID), fUseAcceptance(UseAcc), fYmin(ymin), fYmax(ymax), fYcm(ycm), fT(T), fY2Min(), fY2Max(), fEtaMin(), fEtaMax(), fAcceptance(), fReconstructionEfficiency(), fetaay2(), fNormeta(), fNormeta4pi() // fNorm(1.), fY2Min(), fY2Max(), fEtaMin(), fEtaMax(), fAcceptance(), fReconstructionEfficiency(), fetaay2(), fNormeta(), fNormeta4pi() { BlastWaveLongitudinalNamespace::GetCoefsIntegrateLegendre32(0., 3., xlag32, wlag32); BlastWaveLongitudinalNamespace::GetCoefsIntegrateLegendre32(fYmin, fYmax, xleg32, wleg32); { TString work = getenv("VMCWORKDIR"); TString dir = work + "/KF/KFModelParameters/common/"; char spdg[300]; sprintf(spdg, "%d", fPDGID); if (!Acceptance::ReadAcceptanceFunction(fAcceptance, dir + "pty_acc_" + spdg + ".txt")) { fUseAcceptance = false; return; } fReconstructionEfficiency = Acceptance::ReconstructionEfficiencyFunction(0.99, 0.98, 0.135); std::vector etavec(0), y2acc(0), norm(0), norm4pi(0); double deta = 0.01; double etamax = ycm; for(int i=0;;++i) { double tmpeta = 1.e-5 + deta*(i); if (i==0) { fY2Min = y2Av(tmpeta); fEtaMin = tmpeta; } if (tmpeta>etamax) { fY2Max = y2Av(tmpeta - deta); fEtaMax = tmpeta - deta; break; } etavec.push_back(tmpeta); y2acc.push_back(y2Av(tmpeta)); norm.push_back(Normalization(tmpeta)); norm4pi.push_back(Normalization4pi(tmpeta)); // std::cout << "Calc: " << etavec[i] << " " << y2acc[i] << " " << norm[i] << "\n"; } fetaay2 = TSpline3("fetaay2acc", &y2acc[0], &etavec[0], etavec.size()); fNormeta = TSpline3("fNormacc", &etavec[0], &norm[0], etavec.size()); fNormeta4pi = TSpline3("fNorm4pi", &etavec[0], &norm4pi[0], etavec.size()); for(unsigned int i=0;i