Skip to content
Snippets Groups Projects
Commit 96bb194f authored by Artem Ivanov's avatar Artem Ivanov
Browse files

at the moment, TOF PosteriorProbs is set to -1

parent a0561d59
No related branches found
No related tags found
No related merge requests found
......@@ -308,136 +308,142 @@ std::vector<Double_t> SpdMCTofParticleProducer::CalculatePosteriorProbs(Double_t
std::vector<Double_t> vWi;
std::vector<Double_t> vPDF;
//cout << "don't work now" << endl;
vWi.push_back(-1);
vWi.push_back(-1);
vWi.push_back(-1);
vWi.push_back(-1);
return vWi;
/*
//cout << "don't work now" << endl;
Double_t vpriorProbability[3];
Double_t vpriorProbability[3];
if (momentum > 0.000 && momentum < 0.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.017;
vpriorProbability[2] = 0.006;
}
if (momentum > 0.250 && momentum < 0.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.042;
vpriorProbability[2] = 0.022;
}
if (momentum > 0.500 && momentum < 0.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.074;
vpriorProbability[2] = 0.050;
}
if (momentum > 0.750 && momentum < 1.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.099;
vpriorProbability[2] = 0.087;
}
if (momentum > 1.000 && momentum < 1.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.111;
vpriorProbability[2] = 0.119;
}
if (momentum > 1.250 && momentum < 1.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.119;
vpriorProbability[2] = 0.157;
}
if (momentum > 1.500 && momentum < 1.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.132;
vpriorProbability[2] = 0.193;
}
if (momentum > 1.750 && momentum < 2.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.135;
vpriorProbability[2] = 0.236;
}
if (momentum > 2.000 && momentum < 2.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.142;
vpriorProbability[2] = 0.296;
}
if (momentum > 2.250 && momentum < 2.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.163;
vpriorProbability[2] = 0.353;
}
if (momentum > 2.500 && momentum < 2.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.183;
vpriorProbability[2] = 0.417;
}
if (momentum > 2.750 && momentum < 3.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.251;
vpriorProbability[2] = 0.526;
}
if (momentum > 3.000 && momentum < 3.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.301;
vpriorProbability[2] = 0.610;
}
if (momentum > 3.250 && momentum < 3.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.324;
vpriorProbability[2] = 0.758;
}
if (momentum > 3.500 && momentum < 10.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.324;
vpriorProbability[2] = 0.758;
}
vPDF = CalculateLikelihoods(tofMass2, momentum, 0);
for (auto iparticle = 0; iparticle < name_particles.size(); ++iparticle)
{
double sum_prob_Ci = 0;
for (auto ips = 0; ips < name_particles.size(); ++ips)
if (momentum > 0.000 && momentum < 0.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.017;
vpriorProbability[2] = 0.006;
}
if (momentum > 0.250 && momentum < 0.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.042;
vpriorProbability[2] = 0.022;
}
if (momentum > 0.500 && momentum < 0.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.074;
vpriorProbability[2] = 0.050;
}
if (momentum > 0.750 && momentum < 1.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.099;
vpriorProbability[2] = 0.087;
}
if (momentum > 1.000 && momentum < 1.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.111;
vpriorProbability[2] = 0.119;
}
if (momentum > 1.250 && momentum < 1.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.119;
vpriorProbability[2] = 0.157;
}
if (momentum > 1.500 && momentum < 1.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.132;
vpriorProbability[2] = 0.193;
}
if (momentum > 1.750 && momentum < 2.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.135;
vpriorProbability[2] = 0.236;
}
if (momentum > 2.000 && momentum < 2.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.142;
vpriorProbability[2] = 0.296;
}
if (momentum > 2.250 && momentum < 2.500)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.163;
vpriorProbability[2] = 0.353;
}
if (momentum > 2.500 && momentum < 2.750)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.183;
vpriorProbability[2] = 0.417;
}
if (momentum > 2.750 && momentum < 3.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.251;
vpriorProbability[2] = 0.526;
}
if (momentum > 3.000 && momentum < 3.250)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.301;
vpriorProbability[2] = 0.610;
}
if (momentum > 3.250 && momentum < 3.500)
{
sum_prob_Ci += vPDF[ips] * vpriorProbability[ips];
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.324;
vpriorProbability[2] = 0.758;
}
if (momentum > fpmin && momentum < fpmax)
if (momentum > 3.500 && momentum < 10.000)
{
vpriorProbability[0] = 1.000;
vpriorProbability[1] = 0.324;
vpriorProbability[2] = 0.758;
}
vPDF = CalculateLikelihoods(tofMass2, momentum, 0);
for (auto iparticle = 0; iparticle < name_particles.size(); ++iparticle)
{
double sum_prob_Ci = 0;
double results = (vPDF[iparticle] * vpriorProbability[iparticle]) / sum_prob_Ci;
if (sum_prob_Ci == 0)
for (auto ips = 0; ips < name_particles.size(); ++ips)
{
sum_prob_Ci += vPDF[ips] * vpriorProbability[ips];
}
if (momentum > fpmin && momentum < fpmax)
{
vWi.push_back(-1);
double results = (vPDF[iparticle] * vpriorProbability[iparticle]) / sum_prob_Ci;
if (sum_prob_Ci == 0)
{
vWi.push_back(-1);
}
else
{
vWi.push_back(results);
}
}
else
{
vWi.push_back(results);
vWi.push_back(-1);
}
}
else
{
vWi.push_back(-1);
}
}
return vWi;
return vWi;
*/
}
std::vector<Double_t> SpdMCTofParticleProducer::CalculateLikelihoods(Double_t tofMass2, Double_t momentum, Int_t hitLocation)
......@@ -521,9 +527,6 @@ std::vector<Double_t> SpdMCTofParticleProducer::CalculateDistances(Double_t TofM
return vdistances;
}
Double_t func_sigma_p(Double_t *x, Double_t *par)
{
// return par[4] * x[0] * x[0] * x[0] * x[0] + par[3] * x[0] * x[0] * x[0] + par[0] * x[0] * x[0] + par[1] * x[0] + par[2];
......@@ -531,7 +534,6 @@ Double_t func_sigma_p(Double_t *x, Double_t *par)
return par[0] * pow(x[0], par[1] + par[2] * x[0]) + x[0] * x[0] * par[3] + par[4];
}
TF1 *SpdMCTofParticleProducer::GetSigma_P(Double_t xmin, Double_t xmax, std::vector<Double_t> vfit_sigma)
{
......@@ -561,11 +563,10 @@ TF1 *SpdMCTofParticleProducer::GetMean(Double_t xmin, Double_t xmax, Double_t fi
return f1;
}
std::vector<Double_t> vfit_sigma_p_pion_B = {0.00331468, 0.898094, -2.76434, 0.0304563, -0.00406465};
std::vector<Double_t> vfit_sigma_p_kaon_B = {0.176405, 2.02268, -0.0018956, -0.150022, 0.00798679};
std::vector<Double_t> vfit_sigma_p_proton_B = {0.00909763, -1.42789, 0.0650257, 0.0301272, 0.0119396};
std::vector<Double_t> vfit_sigma_p_deuteron_B = {0.0846426, -1.46068 ,0.0443884 ,0.0304383 ,0.0482678};
std::vector<Double_t> vfit_sigma_p_deuteron_B = {0.0846426, -1.46068, 0.0443884, 0.0304383, 0.0482678};
std::vector<Double_t> vfit_sigma_p_pion_E = {0.0319704, 0.0471512, -0.0890425, 0.0181072, -0.0315866};
std::vector<Double_t> vfit_sigma_p_kaon_E = {-1.42063, 0.00541639, -0.00360618, 0.0161866, 1.43065};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment