Skip to content

Commit cd7667f

Browse files
Removed filters for Event and track counts
1 parent cb6c7c2 commit cd7667f

File tree

1 file changed

+175
-70
lines changed

1 file changed

+175
-70
lines changed

PWGUD/Tasks/exclusiveRhoTo4Pi.cxx

Lines changed: 175 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ namespace branch
5050
{
5151
// Run Number
5252
DECLARE_SOA_COLUMN(RunNumber, runNumber, int);
53+
// Check UPC mode
54+
DECLARE_SOA_COLUMN(IfCheckUPCmode, ifCheckUPCmode, uint16_t);
5355
// vertex Position
5456
DECLARE_SOA_COLUMN(PosX, posX, double);
5557
DECLARE_SOA_COLUMN(PosY, posY, double);
@@ -159,6 +161,8 @@ DECLARE_SOA_COLUMN(FourPionCosThetaPair2, fourPionCosThetaPair2, double);
159161
DECLARE_SOA_TABLE(SignalData, "AOD", "signalData",
160162
branch::RunNumber,
161163

164+
branch::IfCheckUPCmode,
165+
162166
branch::PosX,
163167
branch::PosY,
164168
branch::PosZ,
@@ -263,6 +267,9 @@ DECLARE_SOA_TABLE(SignalData, "AOD", "signalData",
263267

264268
DECLARE_SOA_TABLE(BkgroundData, "AOD", "bkgroundData",
265269
branch::RunNumber,
270+
271+
branch::IfCheckUPCmode,
272+
266273
branch::PosX,
267274
branch::PosY,
268275
branch::PosZ,
@@ -375,18 +382,21 @@ struct ExclusiveRhoTo4Pi {
375382
// Histogram Registry
376383
HistogramRegistry histosData{"histosData", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
377384
// Configurable parameters
385+
Configurable<bool> ifCheckUPCmode{"ifCheckUPCmode", false, "Enable UPC reconstruction only"};
378386
Configurable<float> vZCut{"vZCut", 10., "Vertex Cut"};
379387
Configurable<float> fv0Cut{"fv0Cut", 50., "FV0A threshold"};
380388
Configurable<float> ft0aCut{"ft0aCut", 150., "FT0A threshold"};
381389
Configurable<float> ft0cCut{"ft0cCut", 50., "FT0C threshold"};
382390
Configurable<float> zdcCut{"zdcCut", 0., "ZDC threshold"};
383-
Configurable<float> occupancyCut{"occupancyCut", 20000, "Occupancy Cut"};
384391
Configurable<uint16_t> numPVContrib{"numPVContrib", 4, "Number of PV Contributors"};
392+
Configurable<int> gapSideCut{"gapSideCut", 2, "Gap Side"};
385393
Configurable<int> sbpCut{"sbpCut", 1, "Sbp"};
386394
Configurable<int> itsROFbCut{"itsROFbCut", 1, "itsROFbCut"};
387395
Configurable<int> vtxITSTPCcut{"vtxITSTPCcut", 1, "vtxITSTPCcut"};
388396
Configurable<int> tfbCut{"tfbCut", 1, "tfbCut"};
389397
Configurable<float> pvCut{"pvCut", 1.0, "Use Only PV tracks"};
398+
Configurable<int> hasITSCut{"hasITSCut", 1, "has hit is ITS"};
399+
Configurable<int> hasTPCCut{"hasTPCCut", 1, "has hit is TPC"};
390400
Configurable<float> dcaZcut{"dcaZcut", 2, "dcaZ cut"};
391401
Configurable<float> dcaXYcut{"dcaXYcut", 0, "dcaXY cut"};
392402
Configurable<float> tpcChi2Cut{"tpcChi2Cut", 4, "Max tpcChi2NCl"};
@@ -408,9 +418,9 @@ struct ExclusiveRhoTo4Pi {
408418

409419
void init(InitContext const&)
410420
{
411-
412421
// QA plots: Event Counter
413-
histosData.add("EventsCounts_vs_runNo", "Number of Selected 4-Pion Events per Run; Run Number; Number of Events", kTH2F, {{1355, 544013, 545367}, {10, 0, 10}});
422+
histosData.add("EventsCounts_vs_runNo", "Number of Selected 4-Pion Events per Run; Run Number; Number of Events", kTH2F, {{1355, 544013, 545367}, {20, 0, 20}});
423+
histosData.add("TracksCounts_vs_runNo", "Number of Selected Tracks per Run; Run Number; Number of Tracks", kTH2F, {{1355, 544013, 545367}, {20, 0, 20}});
414424
// QA plots: event selection
415425
histosData.add("FT0A", "T0A amplitude", kTH1F, {{2000, 0.0, 500.0}});
416426
histosData.add("FT0C", "T0C amplitude", kTH1F, {{2000, 0.0, 500.0}});
@@ -448,17 +458,6 @@ struct ExclusiveRhoTo4Pi {
448458
histosData.add("tofNSigmaPr_pions", "TOF nSigma Proton with track selection and PID Selection of Pion; Entries", kTH2F, {{1000, -15, 15}, {1000, 0, 10}});
449459
histosData.add("tofNSigmaEl_pions", "TOF nSigma Electron with track selection and PID Selection of Pion; Entries", kTH2F, {{1000, -15, 15}, {1000, 0, 10}});
450460
histosData.add("tofNSigmaMu_pions", "TOF nSigma Muon with track selection and PID Selection of Pion; Entries", kTH2F, {{1000, -15, 15}, {1000, 0, 10}});
451-
// QA averages
452-
histosData.add("avg_pT_pi_vs_runNo", "Average pion p_{T} vs run number; Run Number; p_{T} [GeV/c]", kTH2F, {{1355, 544013, 545367}, {1000, -0.1, 2}});
453-
histosData.add("avg_eta_pi_vs_runNo", "Average pion #eta vs run number; Run Number; #eta", kTH2F, {{1355, 544013, 545367}, {etaAxis}});
454-
histosData.add("avg_phi_pi_vs_runNo", "Average pion #phi vs run number; Run Number; #phi [rad]", kTH2F, {{1355, 544013, 545367}, {1000, -1 * o2::constants::math::PI, o2::constants::math::PI}});
455-
histosData.add("avg_dcaxy_vs_runNo", "Average pion DCA XY vs run number; Run Number; DCA XY [cm]", kTH2F, {{1355, 544013, 545367}, {1000, -0.2, 0.2}});
456-
histosData.add("avg_dcaz_vs_runNo", "Average pion DCA Z vs run number; Run Number; DCA Z [cm]", kTH2F, {{1355, 544013, 545367}, {1000, -0.2, 0.2}});
457-
histosData.add("avg_pT_pi_vs_runNo_selected4piEvents", "Average pion p_{T} vs run number; Run Number; p_{T} [GeV/c]", kTH2F, {{1355, 544013, 545367}, {1000, -0.1, 2}});
458-
histosData.add("avg_eta_pi_vs_runNo_selected4piEvents", "Average pion #eta vs run number; Run Number; #eta", kTH2F, {{1355, 544013, 545367}, {etaAxis}});
459-
histosData.add("avg_phi_pi_vs_runNo_selected4piEvents", "Average pion #phi vs run number; Run Number; #phi [rad]", kTH2F, {{1355, 544013, 545367}, {1000, -1 * o2::constants::math::PI, o2::constants::math::PI}});
460-
histosData.add("avg_dcaxy_vs_runNo_selected4piEvents", "Average pion DCA XY vs run number; Run Number; DCA XY [cm]", kTH2F, {{1355, 544013, 545367}, {1000, -0.2, 0.2}});
461-
histosData.add("avg_dcaz_vs_runNo_selected4piEvents", "Average pion DCA Z vs run number; Run Number; DCA Z [cm]", kTH2F, {{1355, 544013, 545367}, {1000, -0.2, 0.2}});
462461
// Track Transverse Momentum
463462
histosData.add("pT_track_all", "pT with track selection; pT [GeV/c]; Counts", kTH1F, {pTAxis});
464463
histosData.add("pT_track_pions", "pT with track selection and PID selection of Pi; pT [GeV/c]; Events", kTH1F, {pTAxis});
@@ -528,30 +527,91 @@ struct ExclusiveRhoTo4Pi {
528527
histosData.add("phi_vs_costheta_large_mass", "Phi vs cosTheta for large mass; #phi; cos(#theta)", kTH2F, {phiAxis, cosThetaAxis});
529528
} // End of init function
530529

531-
//---------------------------------------------------------------------------------------------------------------------------------------------
532-
Filter vertexCut = (nabs(o2::aod::collision::posZ) <= vZCut) && (o2::aod::collision::numContrib == numPVContrib);
533-
Filter fitcuts = o2::aod::udcollision::totalFV0AmplitudeA < fv0Cut && o2::aod::udcollision::totalFT0AmplitudeA < ft0aCut && o2::aod::udcollision::totalFT0AmplitudeC < ft0cCut;
534-
Filter zdcCuts = (o2::aod::udzdc::energyCommonZNA < zdcCut) && (o2::aod::udzdc::energyCommonZNC < zdcCut);
535-
Filter bcSelectionCuts = (o2::aod::udcollision::sbp == sbpCut) && (o2::aod::udcollision::itsROFb == itsROFbCut) && (o2::aod::udcollision::vtxITSTPC == vtxITSTPCcut) && (o2::aod::udcollision::tfb == tfbCut);
536-
Filter occupCut = nabs(o2::aod::udcollision::occupancyInTime) < occupancyCut;
537-
Filter onlyPVtracks = o2::aod::udtrack::isPVContributor == true;
538-
//---------------------------------------------------------------------------------------------------------------------------------------------
539-
540-
using UDtracks = soa::Filtered<soa::Join<aod::UDTracks, aod::UDTracksPID, aod::UDTracksExtra, aod::UDTracksFlags, aod::UDTracksDCA>>;
541-
using UDCollisions = soa::Filtered<soa::Join<aod::UDCollisions, aod::SGCollisions, aod::UDCollisionSelExtras, aod::UDCollisionsSels, aod::UDZdcsReduced>>;
530+
using UDtracks = soa::Join<aod::UDTracks, aod::UDTracksPID, aod::UDTracksExtra, aod::UDTracksFlags, aod::UDTracksDCA>;
531+
using UDCollisions = soa::Join<aod::UDCollisions, aod::SGCollisions, aod::UDCollisionSelExtras, aod::UDCollisionsSels, aod::UDZdcsReduced>;
542532

543533
void processData(UDCollisions::iterator const& collision, UDtracks const& tracks)
544534
{
535+
// Check if the event is in UPC mode
536+
if (ifCheckUPCmode && (collision.flags() != 1)) {
537+
return;
538+
}
545539

540+
// no Cuts
546541
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 0);
547542

548543
int gapSide = collision.gapSide();
549544
std::vector<float> parameters = {pvCut, dcaZcut, dcaXYcut, tpcChi2Cut, tpcNClsFindableCut, itsChi2Cut, etaCut, pTcut};
550545
int truegapSide = sgSelector.trueGap(collision, fv0Cut, ft0aCut, ft0cCut, zdcCut);
551546

547+
// FTOA
548+
if (!(collision.totalFT0AmplitudeA() <= ft0aCut)) {
549+
return;
550+
}
551+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 1);
552+
553+
// FT0C
554+
if (!(collision.totalFT0AmplitudeC() <= ft0cCut)) {
555+
return;
556+
}
557+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 2);
558+
559+
// FV0
560+
if (!(collision.totalFV0AmplitudeA() <= fv0Cut)) {
561+
return;
562+
}
563+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 3);
564+
565+
// noSamebunchPileup
566+
if (collision.sbp() != sbpCut) {
567+
return;
568+
}
569+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 4);
570+
571+
// kIsVertexITSTPC
572+
if (collision.vtxITSTPC() != vtxITSTPCcut) {
573+
return;
574+
}
575+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 5);
576+
577+
// kNoITSROFrameBorder
578+
if (collision.itsROFb() != itsROFbCut) {
579+
return;
580+
}
581+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 6);
582+
583+
// kNoTimeFrameBorder
584+
if (collision.tfb() != tfbCut) {
585+
return;
586+
}
587+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 7);
588+
589+
// ZDC
590+
if (!(collision.energyCommonZNA() <= zdcCut || collision.energyCommonZNC() <= zdcCut)) {
591+
return;
592+
}
593+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 8);
594+
595+
// Vertex Z cut
596+
if (!(std::abs(collision.posZ()) <= vZCut)) {
597+
return;
598+
}
599+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 9);
600+
601+
// true Gap Side
602+
if (truegapSide != gapSideCut) {
603+
return;
604+
}
605+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 10);
606+
607+
// number of PV contributors
608+
if (!(collision.numContrib() == numPVContrib)) {
609+
return;
610+
}
611+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 11);
612+
552613
histosData.fill(HIST("GapSide"), gapSide);
553614
histosData.fill(HIST("TrueGapSide"), truegapSide);
554-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 1);
555615
histosData.fill(HIST("vertexX"), collision.posX());
556616
histosData.fill(HIST("vertexY"), collision.posY());
557617
histosData.fill(HIST("vertexZ"), collision.posZ());
@@ -567,41 +627,87 @@ struct ExclusiveRhoTo4Pi {
567627
std::vector<decltype(tracks.begin())> selectedPionPlusTracks;
568628
std::vector<decltype(tracks.begin())> selectedPionMinusTracks;
569629

570-
double avgpT = 0.0;
571-
double avgEta = 0.0;
572-
double avgPhi = 0.0;
573-
double avgdcaxy = 0.0;
574-
double avgdcaz = 0.0;
575-
576630
for (const auto& t0 : tracks) {
577631

578632
ROOT::Math::PxPyPzMVector trackVector(t0.px(), t0.py(), t0.pz(), o2::constants::physics::MassPionCharged);
579-
avgpT += trackVector.Pt();
580-
avgEta += trackVector.Eta();
581-
avgPhi += trackVector.Phi();
582-
avgdcaxy += t0.dcaXY();
583-
avgdcaz += t0.dcaZ();
584-
585-
if (trackselector(t0, parameters)) {
586-
selectedTracks.push_back(t0);
587-
if (selectionPIDPion(t0, true, nSigmaTPCcut, nSigmaTOFcut)) {
588-
selectedPionTracks.push_back(t0);
589-
if (t0.sign() == 1) {
590-
selectedPionPlusTracks.push_back(t0);
591-
}
592-
if (t0.sign() == -1) {
593-
selectedPionMinusTracks.push_back(t0);
594-
}
595-
} // End of Selection PID Pion
596-
} // End of track selections
597633

598-
} // End of loop over tracks
634+
// no Cuts
635+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 0);
636+
637+
// is PV Contributor
638+
if (!(t0.isPVContributor() == pvCut)) {
639+
continue;
640+
}
641+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 1);
642+
643+
// track pT cut
644+
if (!(trackVector.Pt() >= pTcut)) {
645+
continue;
646+
}
647+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 2);
648+
649+
// track Eta cut
650+
if (!(std::abs(trackVector.Eta()) <= etaCut)) {
651+
continue;
652+
}
653+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 3);
599654

600-
histosData.fill(HIST("avg_pT_pi_vs_runNo"), collision.runNumber(), avgpT / tracks.size());
601-
histosData.fill(HIST("avg_eta_pi_vs_runNo"), collision.runNumber(), avgEta / tracks.size());
602-
histosData.fill(HIST("avg_phi_pi_vs_runNo"), collision.runNumber(), avgPhi / tracks.size());
603-
histosData.fill(HIST("avg_dcaxy_vs_runNo"), collision.runNumber(), avgdcaxy / tracks.size());
604-
histosData.fill(HIST("avg_dcaz_vs_runNo"), collision.runNumber(), avgdcaz / tracks.size());
655+
// dcaZ
656+
if (!(std::abs(t0.dcaZ()) <= dcaZcut)) {
657+
continue;
658+
}
659+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 4);
660+
661+
// dcaXY
662+
if (!(std::abs(t0.dcaXY()) <= getMaxDCAxy(trackVector.Pt()))) {
663+
continue;
664+
}
665+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 5);
666+
667+
// has ITS hit
668+
if (!(t0.hasITS() == hasITSCut)) {
669+
continue;
670+
}
671+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 6);
672+
673+
// has TPC hit
674+
if (!(t0.hasTPC() == hasTPCCut)) {
675+
continue;
676+
}
677+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 7);
678+
679+
// ITS chi2
680+
if (!(t0.itsChi2NCl() <= itsChi2Cut)) {
681+
continue;
682+
}
683+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 8);
684+
685+
// TPC chi2
686+
if (!(t0.tpcChi2NCl() <= tpcChi2Cut)) {
687+
continue;
688+
}
689+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 9);
690+
691+
// TPC N Cls Findable
692+
if (!(t0.tpcNClsFindable() >= tpcNClsFindableCut)) {
693+
continue;
694+
}
695+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 10);
696+
697+
selectedTracks.push_back(t0);
698+
if (selectionPIDPion(t0, true, nSigmaTPCcut, nSigmaTOFcut)) {
699+
selectedPionTracks.push_back(t0);
700+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 11);
701+
if (t0.sign() == 1) {
702+
selectedPionPlusTracks.push_back(t0);
703+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 12);
704+
}
705+
if (t0.sign() == -1) {
706+
selectedPionMinusTracks.push_back(t0);
707+
histosData.fill(HIST("TracksCounts_vs_runNo"), collision.runNumber(), 13);
708+
}
709+
} // End of Selection PID Pion
710+
} // End of loop over tracks
605711

606712
int numSelectedTracks = static_cast<int>(selectedTracks.size());
607713
int numSelectedPionTracks = static_cast<int>(selectedPionTracks.size());
@@ -647,11 +753,11 @@ struct ExclusiveRhoTo4Pi {
647753
histosData.fill(HIST("dcaZ_pions"), selectedPionTracks[i].dcaZ());
648754
} // End of loop over tracks with selection and PID of pions
649755

756+
// event should have at least 4 pions
650757
if (numSelectedPionTracks != numFourPionTracks) {
651758
return;
652759
}
653-
654-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 2);
760+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 12);
655761

656762
// Check if there is at least one track with TOF in the selected events, otherwise return
657763
bool hasAtleastOneTOF = false;
@@ -662,12 +768,10 @@ struct ExclusiveRhoTo4Pi {
662768
}
663769
}
664770

665-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 3);
666-
667771
// Selecting Events with net charge = 0
668772
if (numPionMinusTracks == numPiMinus && numPiPlusTracks == numPiPlus) {
669773

670-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 4);
774+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 13);
671775

672776
ROOT::Math::PtEtaPhiMVector k1, k2, k3, k4, k1234, k13, k14, k23, k24;
673777

@@ -696,12 +800,6 @@ struct ExclusiveRhoTo4Pi {
696800
histosData.fill(HIST("rapidity_track_pions_contributed"), p3.Rapidity());
697801
histosData.fill(HIST("rapidity_track_pions_contributed"), p4.Rapidity());
698802

699-
histosData.fill(HIST("avg_pT_pi_vs_runNo_selected4piEvents"), collision.runNumber(), (p1.Pt() + p2.Pt() + p3.Pt() + p4.Pt()) / 4.0);
700-
histosData.fill(HIST("avg_eta_pi_vs_runNo_selected4piEvents"), collision.runNumber(), (p1.Eta() + p2.Eta() + p3.Eta() + p4.Eta()) / 4.0);
701-
histosData.fill(HIST("avg_phi_pi_vs_runNo_selected4piEvents"), collision.runNumber(), (p1.Phi() + p2.Phi() + p3.Phi() + p4.Phi()) / 4.0);
702-
histosData.fill(HIST("avg_dcaxy_vs_runNo_selected4piEvents"), collision.runNumber(), (selectedPionPlusTracks[0].dcaXY() + selectedPionPlusTracks[1].dcaXY() + selectedPionMinusTracks[0].dcaXY() + selectedPionMinusTracks[1].dcaXY()) / 4.0);
703-
histosData.fill(HIST("avg_dcaz_vs_runNo_selected4piEvents"), collision.runNumber(), (selectedPionPlusTracks[0].dcaZ() + selectedPionPlusTracks[1].dcaZ() + selectedPionMinusTracks[0].dcaZ() + selectedPionMinusTracks[1].dcaZ()) / 4.0);
704-
705803
k1.SetCoordinates(p1.Pt(), p1.Eta(), p1.Phi(), o2::constants::physics::MassPionCharged);
706804
k2.SetCoordinates(p2.Pt(), p2.Eta(), p2.Phi(), o2::constants::physics::MassPionCharged);
707805
k3.SetCoordinates(p3.Pt(), p3.Eta(), p3.Phi(), o2::constants::physics::MassPionCharged);
@@ -729,6 +827,8 @@ struct ExclusiveRhoTo4Pi {
729827
sigFromData(
730828
// run number
731829
collision.runNumber(),
830+
// UPC mode
831+
collision.flags(),
732832
// vertex
733833
collision.posX(), collision.posY(), collision.posZ(),
734834
// FIT Signals
@@ -786,7 +886,6 @@ struct ExclusiveRhoTo4Pi {
786886
histosData.fill(HIST("fourpion_rap_0_charge_within_rap"), p1234.Rapidity());
787887
histosData.fill(HIST("fourpion_mass_0_charge_within_rap"), p1234.M());
788888
if (p1234.Pt() < rhoPtCut) {
789-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 5);
790889
// Fill the Invariant Mass Histogram
791890
histosData.fill(HIST("fourpion_mass_0_charge_domA"), p1234.M());
792891
// Two Pion Masses
@@ -831,7 +930,7 @@ struct ExclusiveRhoTo4Pi {
831930
// Selecting Events with net charge != 0 for estimation of background
832931
if (numPionMinusTracks != numPiMinus && numPiPlusTracks != numPiPlus) {
833932

834-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 6);
933+
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 14);
835934

836935
ROOT::Math::PxPyPzMVector p1(selectedPionTracks[0].px(), selectedPionTracks[0].py(), selectedPionTracks[0].pz(), o2::constants::physics::MassPionCharged);
837936
ROOT::Math::PxPyPzMVector p2(selectedPionTracks[1].px(), selectedPionTracks[1].py(), selectedPionTracks[1].pz(), o2::constants::physics::MassPionCharged);
@@ -848,6 +947,8 @@ struct ExclusiveRhoTo4Pi {
848947
bkgFromData(
849948
// Run Number
850949
collision.runNumber(),
950+
// UPC mode
951+
collision.flags(),
851952
// vertex
852953
collision.posX(), collision.posY(), collision.posZ(),
853954
// FIT Signals
@@ -903,7 +1004,6 @@ struct ExclusiveRhoTo4Pi {
9031004
histosData.fill(HIST("fourpion_rap_non_0_charge_within_rap"), p1234.Rapidity());
9041005
histosData.fill(HIST("fourpion_mass_non_0_charge_within_rap"), p1234.M());
9051006
if (p1234.Pt() < rhoPtCut) {
906-
histosData.fill(HIST("EventsCounts_vs_runNo"), collision.runNumber(), 7);
9071007
histosData.fill(HIST("fourpion_mass_non_0_charge_domA"), p1234.M());
9081008
}
9091009
if (p1234.Pt() > rhoPtCut && p1234.Pt() < zeroPointEight) {
@@ -966,6 +1066,11 @@ struct ExclusiveRhoTo4Pi {
9661066
return phi;
9671067
}
9681068

1069+
double getMaxDCAxy(double pT)
1070+
{
1071+
return 0.0105 + 0.035 / std::pow(pT, 1.1);
1072+
}
1073+
9691074
}; // End of Struct exclusiveRhoTo4Pi
9701075

9711076
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)