#include "BoltzmannDistribution.h" #include namespace BoltzmannDistributionNamespace { #include "../NumericalIntegration.h" } BoltzmannDistribution::BoltzmannDistribution(double mass, int PDGID, bool UseAcc, double ymin, double ymax, double ycm, double width): xlag32(), wlag32(), xleg32(), wleg32(), fMass(mass), fPDGID(PDGID), fUseAcceptance(UseAcc), fYmin(ymin), fYmax(ymax), fYcm(ycm), fWidth(width), fAcceptance(), fReconstructionEfficiency(), fTamt(), fNormT(), fNormT4pi() // fNorm(1.), fAcceptance(), fReconstructionEfficiency(), fTamt(), fNormT(), fNormT4pi() { //InverseSlopeNamespace::GetCoefsIntegrateLaguerre32(xlag32, wlag32); fWidth = 1.; BoltzmannDistributionNamespace::GetCoefsIntegrateLegendre32(0., 3., xlag32, wlag32); BoltzmannDistributionNamespace::GetCoefsIntegrateLegendre32(fYmin, fYmax, xleg32, wleg32); //if (fUseAcceptance) { TString work = getenv("VMCWORKDIR"); TString dir = work + "/KF/KFModelParameters/common/";//ThermalModel.mT-t.sts_v13.txt"; char spdg[300]; sprintf(spdg, "%d", fPDGID); if (!Acceptance::ReadAcceptanceFunction(fAcceptance, dir + "pty_acc_" + spdg + ".txt")) { fUseAcceptance = false; //std::cout << dir + "pty_acc_" + spdg + ".txt" << "\nAcceptance not OK!\n" << "\n"; return; } //std::cout << "Acceptance OK!\n" << "\n"; fReconstructionEfficiency = Acceptance::ReconstructionEfficiencyFunction(0.99, 0.98, 0.135); std::vector Tvec(0), mtacc(0), norm(0), norm4pi(0); double dT = 0.002; double Tmax = 0.5; //std::cout << ymin << "<" << "y" << "<" << ymax << "\n"; for(int i=0;;++i) { double tmpT = 0.01 + dT*(0.5+i); if (tmpT>Tmax) break; Tvec.push_back(tmpT); mtacc.push_back(mtAv(tmpT)); norm.push_back(Normalization(tmpT)); norm4pi.push_back(Normalization4pi(tmpT)); //std::cout << "Calc: " << Tvec[i] << " " << mtacc[i] << " " << norm[i] << "\n"; } fTamt = TSpline3("fTamtacc", &mtacc[0], &Tvec[0], Tvec.size()); fNormT = TSpline3("fNormacc", &Tvec[0], &norm[0], Tvec.size()); fNormT4pi = TSpline3("fNorm4pi", &Tvec[0], &norm4pi[0], Tvec.size()); //for(int i=0;i