|
37 | 37 |
|
38 | 38 | #include "TPDGCode.h" |
39 | 39 | #include <TRandom3.h> |
| 40 | +#include <TString.h> |
40 | 41 |
|
41 | 42 | #include <chrono> |
42 | 43 | #include <cmath> |
@@ -118,6 +119,7 @@ struct UccZdc { |
118 | 119 | Configurable<bool> applyFD{"applyFD", false, "Apply track-by-track feed down correction"}; |
119 | 120 | Configurable<bool> correctNch{"correctNch", true, "Correct also Nch"}; |
120 | 121 | Configurable<bool> skipRecoColGTOne{"skipRecoColGTOne", true, "Remove collisions if reconstructed more than once"}; |
| 122 | + Configurable<std::string> detector4Calibration{"detector4Calibration", "T0M", "Detector for nSigma-Nch rejection"}; |
121 | 123 |
|
122 | 124 | // Event selection |
123 | 125 | Configurable<float> posZcut{"posZcut", +10.0, "z-vertex position cut"}; |
@@ -243,6 +245,7 @@ struct UccZdc { |
243 | 245 | registry.add("NchUncorrected", Form(";%s;Entries;", tiNch), kTH1F, {{nBinsNch, minNch, maxNch}}); |
244 | 246 | registry.add("hEventCounter", ";;Events", kTH1F, {axisEvent}); |
245 | 247 | registry.add("ExcludedEvtVsFT0M", Form(";%s;Entries;", tiT0M), kTH1F, {{nBinsAmpFT0, 0., maxAmpFT0}}); |
| 248 | + registry.add("ExcludedEvtVsFV0A", Form(";%s;Entries;", tiT0M), kTH1F, {{nBinsAmpV0A, 0., maxAmpV0A}}); |
246 | 249 | registry.add("ExcludedEvtVsNch", Form(";%s;Entries;", tiNch), kTH1F, {{nBinsNch, minNch, maxNch}}); |
247 | 250 | registry.add("Nch", Form(";%s;Entries;", tiNch), kTH1F, {{nBinsNch, minNch, maxNch}}); |
248 | 251 | registry.add("NchVsOneParCorr", Form(";%s;%s;", tiNch, tiOneParCorr), kTProfile, {{nBinsNch, minNch, maxNch}}); |
@@ -403,6 +406,7 @@ struct UccZdc { |
403 | 406 | LOG(info) << "\tpaTHEff=" << paTHEff.value; |
404 | 407 | LOG(info) << "\tpaTHFD=" << paTHFD.value; |
405 | 408 | LOG(info) << "\tuseMidRapNchSel=" << useMidRapNchSel.value; |
| 409 | + LOG(info) << "\tdetector4Calibration=" << detector4Calibration.value; |
406 | 410 | LOG(info) << "\tnSigmaNchCut=" << nSigmaNchCut.value; |
407 | 411 | LOG(info) << "\tpaTHmeanNch=" << paTHmeanNch.value; |
408 | 412 | LOG(info) << "\tpaTHsigmaNch=" << paTHsigmaNch.value; |
@@ -599,14 +603,24 @@ struct UccZdc { |
599 | 603 | if (!(cfgNch.hMeanNch && cfgNch.hSigmaNch)) |
600 | 604 | return; |
601 | 605 |
|
602 | | - const int binT0M{cfgNch.hMeanNch->FindBin(normT0M)}; |
603 | | - const double meanNch{cfgNch.hMeanNch->GetBinContent(binT0M)}; |
604 | | - const double sigmaNch{cfgNch.hSigmaNch->GetBinContent(binT0M)}; |
| 606 | + TString s1 = TString(detector4Calibration.value); |
| 607 | + double xEval{1.}; |
| 608 | + if (s1 == "T0M") { |
| 609 | + xEval = normT0M; |
| 610 | + } |
| 611 | + if (s1 == "V0A") { |
| 612 | + xEval = normV0A; |
| 613 | + } |
| 614 | + |
| 615 | + const int bin4Calibration{cfgNch.hMeanNch->FindBin(xEval)}; |
| 616 | + const double meanNch{cfgNch.hMeanNch->GetBinContent(bin4Calibration)}; |
| 617 | + const double sigmaNch{cfgNch.hSigmaNch->GetBinContent(bin4Calibration)}; |
605 | 618 | const double nSigmaSelection{nSigmaNchCut * sigmaNch}; |
606 | 619 | const double diffMeanNch{meanNch - glbTracks}; |
607 | 620 |
|
608 | 621 | if (std::abs(diffMeanNch) > nSigmaSelection) { |
609 | 622 | registry.fill(HIST("ExcludedEvtVsFT0M"), normT0M); |
| 623 | + registry.fill(HIST("ExcludedEvtVsFV0A"), normV0A); |
610 | 624 | registry.fill(HIST("ExcludedEvtVsNch"), glbTracks); |
611 | 625 | skipEvent = true; |
612 | 626 | } |
@@ -763,19 +777,28 @@ struct UccZdc { |
763 | 777 |
|
764 | 778 | bool skipEvent{false}; |
765 | 779 | if (useMidRapNchSel) { |
766 | | - |
767 | 780 | loadNchCalibrations(foundBC.timestamp()); |
768 | 781 | if (!(cfgNch.hMeanNch && cfgNch.hSigmaNch)) |
769 | 782 | return; |
770 | 783 |
|
771 | | - const int binT0M{cfgNch.hMeanNch->FindBin(normT0M)}; |
772 | | - const double meanNch{cfgNch.hMeanNch->GetBinContent(binT0M)}; |
773 | | - const double sigmaNch{cfgNch.hSigmaNch->GetBinContent(binT0M)}; |
| 784 | + TString s1 = TString(detector4Calibration.value); |
| 785 | + double xEval{1.}; |
| 786 | + if (s1 == "T0M") { |
| 787 | + xEval = normT0M; |
| 788 | + } |
| 789 | + if (s1 == "V0A") { |
| 790 | + xEval = normV0A; |
| 791 | + } |
| 792 | + |
| 793 | + const int bin4Calibration{cfgNch.hMeanNch->FindBin(xEval)}; |
| 794 | + const double meanNch{cfgNch.hMeanNch->GetBinContent(bin4Calibration)}; |
| 795 | + const double sigmaNch{cfgNch.hSigmaNch->GetBinContent(bin4Calibration)}; |
774 | 796 | const double nSigmaSelection{nSigmaNchCut * sigmaNch}; |
775 | 797 | const double diffMeanNch{meanNch - glbTracks}; |
776 | 798 |
|
777 | 799 | if (std::abs(diffMeanNch) > nSigmaSelection) { |
778 | 800 | registry.fill(HIST("ExcludedEvtVsFT0M"), normT0M); |
| 801 | + registry.fill(HIST("ExcludedEvtVsFV0A"), normV0A); |
779 | 802 | registry.fill(HIST("ExcludedEvtVsNch"), glbTracks); |
780 | 803 | skipEvent = true; |
781 | 804 | } |
|
0 commit comments