@@ -52,6 +52,8 @@ CorrelationsDialog::CorrelationsDialog(QWidget* parent, ThermalModelBase* mod) :
5252 comboQuantity = new QComboBox ();
5353 comboQuantity->addItem (tr (" Susceptibility" ));
5454 comboQuantity->addItem (tr (" Moment" ));
55+ comboQuantity->addItem (tr (" Scaled moment" ));
56+ comboQuantity->addItem (tr (" Pearson correlation" ));
5557 comboQuantity->addItem (tr (" Delta[N1,N2]" ));
5658 comboQuantity->addItem (tr (" Sigma[N1,N2]" ));
5759 comboQuantity->setCurrentIndex (0 );
@@ -149,11 +151,27 @@ void CorrelationsDialog::recalculate()
149151 tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr)));
150152 else if (comboQuantity->currentIndex () == 1 )
151153 tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr * model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 ))));
154+ // else if (comboQuantity->currentIndex() == 2) {
155+ // double val = corr * model->Volume() * pow(model->Parameters().T, 3) * pow(xMath::GeVtoifm(), 3);
156+ // double yld1 = model->GetYield(pdg1, Feeddown::Primordial);
157+ // double yld2 = model->GetYield(pdg2, Feeddown::Primordial);
158+ // if (comboFeeddown->currentIndex() == 1) {
159+ // yld1 = model->GetYield(pdg1, Feeddown::StabilityFlag);
160+ // yld2 = model->GetYield(pdg2, Feeddown::StabilityFlag);
161+ // }
162+ // tableCorr->setItem(i, j, new QTableWidgetItem(QString::number(val / sqrt(yld1 * yld2))));
163+ // }
164+ // else if (comboQuantity->currentIndex() == 3) {
165+ // double val = corr;
166+ // double var1 = model->TwoParticleSusceptibilityPrimordialByPdg(pdg1, pdg1);
167+ // double var2 = model->TwoParticleSusceptibilityPrimordialByPdg(pdg2, pdg2);
168+ // if (comboFeeddown->currentIndex() == 1) {
169+ // var1 = model->TwoParticleSusceptibilityFinalByPdg(pdg1, pdg1);
170+ // var2 = model->TwoParticleSusceptibilityFinalByPdg(pdg2, pdg2);
171+ // }
172+ // tableCorr->setItem(i, j, new QTableWidgetItem(QString::number(val / sqrt(var1 * var2))));
173+ // }
152174 else {
153- if (pdg1 == pdg2) {
154- tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (0 .)));
155- continue ;
156- }
157175
158176 double N1 = 0 ., N2 = 0 .;
159177 double wn1 = 0 ., wn2 = 0 .;
@@ -209,17 +227,36 @@ void CorrelationsDialog::recalculate()
209227
210228 corr *= model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 );
211229
212- // Delta
230+ // Scaled moment
213231 if (comboQuantity->currentIndex () == 2 ) {
214- double DeltaN1N2 = (N1 * wn2 - N2 * wn1) / (N2 - N1);
215- tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (DeltaN1N2)));
216- continue ;
232+ if (pdg1 == pdg2) {
233+ qDebug () << pdg1 << " " << corr << " " << N1 << " " << N2 << endl;
234+ }
235+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr / sqrt (N1 * N2))));
236+ }
237+ // Pearson
238+ else if (comboQuantity->currentIndex () == 3 ) {
239+ double var1 = wn1 * N1, var2 = wn2 * N2;
240+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr / sqrt (var1 * var2))));
217241 }
218- // Sigma
219242 else {
220- double SigmaN1N2 = (N1 * wn2 + N2 * wn1 - 2 . * corr) / (N2 + N1);
221- tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (SigmaN1N2)));
222- continue ;
243+ if (pdg1 == pdg2) {
244+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (0 .)));
245+ continue ;
246+ }
247+
248+ // Delta
249+ if (comboQuantity->currentIndex () == 4 ) {
250+ double DeltaN1N2 = (N1 * wn2 - N2 * wn1) / (N2 - N1);
251+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (DeltaN1N2)));
252+ continue ;
253+ }
254+ // Sigma
255+ else {
256+ double SigmaN1N2 = (N1 * wn2 + N2 * wn1 - 2 . * corr) / (N2 + N1);
257+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (SigmaN1N2)));
258+ continue ;
259+ }
223260 }
224261 }
225262 }
@@ -264,8 +301,17 @@ void CorrelationsDialog::recalculate()
264301 double wn1 = model->Susc ((ConservedCharge::Name)i, (ConservedCharge::Name)i) * model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 ) / N1;
265302 double wn2 = model->Susc ((ConservedCharge::Name)j, (ConservedCharge::Name)j) * model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 ) / N2;
266303 double corr = model->Susc ((ConservedCharge::Name)i, (ConservedCharge::Name)j) * model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 );
267- // Delta
304+ // Scaled moment
268305 if (comboQuantity->currentIndex () == 2 ) {
306+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr / sqrt (N1 * N2))));
307+ }
308+ // Pearson
309+ else if (comboQuantity->currentIndex () == 3 ) {
310+ double var1 = wn1 * N1, var2 = wn2 * N2;
311+ tableCorr->setItem (i, j, new QTableWidgetItem (QString::number (corr / sqrt (var1 * var2))));
312+ }
313+ // Delta
314+ if (comboQuantity->currentIndex () == 4 ) {
269315 double DeltaN1N2 = (N1 * wn2 - N2 * wn1) / (N2 - N1);
270316 tableCorr->setItem (i1, i2, new QTableWidgetItem (QString::number (DeltaN1N2)));
271317 }
@@ -386,8 +432,17 @@ void CorrelationsDialog::recalculate()
386432
387433 corr *= model->Volume () * pow (model->Parameters ().T , 3 ) * pow (xMath::GeVtoifm (), 3 );
388434
389- // Delta
435+ // Scaled moment
390436 if (comboQuantity->currentIndex () == 2 ) {
437+ tableCorr->setItem (i, i2, new QTableWidgetItem (QString::number (corr / sqrt (N1 * N2))));
438+ }
439+ // Pearson
440+ else if (comboQuantity->currentIndex () == 3 ) {
441+ double var1 = wn1 * N1, var2 = wn2 * N2;
442+ tableCorr->setItem (i, i2, new QTableWidgetItem (QString::number (corr / sqrt (var1 * var2))));
443+ }
444+ // Delta
445+ if (comboQuantity->currentIndex () == 4 ) {
391446 double DeltaN1N2 = (N1 * wn2 - N2 * wn1) / (N2 - N1);
392447 tableCorr->setItem (i, i2, new QTableWidgetItem (QString::number (DeltaN1N2)));
393448 }
0 commit comments