@@ -440,20 +440,20 @@ struct tofSpectra {
440440 histos.add (" Data/cent/neg/pt/its_tof" , " neg ITS-TOF" , kTH3D , {ptAxis, multAxis, occupancyAxis});
441441 }
442442 const AxisSpec nsigmaTPCAxisOccupancy{binsOptions.binsnsigmaTPC , " nsigmaTPC" };
443- histos.add (" nsigmatpc/mc_closure/pos/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
444- histos.add (" nsigmatpc/mc_closure/neg/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
445- histos.add (" nsigmatof/mc_closure/pos/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
446- histos.add (" nsigmatof/mc_closure/neg/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
443+ histos.add (" nsigmatpc/mc_closure/pos/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
444+ histos.add (" nsigmatpc/mc_closure/neg/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
445+ histos.add (" nsigmatof/mc_closure/pos/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
446+ histos.add (" nsigmatof/mc_closure/neg/pi" , " mc_closure dependent pion" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
447447
448- histos.add (" nsigmatpc/mc_closure/pos/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
449- histos.add (" nsigmatpc/mc_closure/neg/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
450- histos.add (" nsigmatof/mc_closure/pos/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
451- histos.add (" nsigmatof/mc_closure/neg/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
448+ histos.add (" nsigmatpc/mc_closure/pos/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
449+ histos.add (" nsigmatpc/mc_closure/neg/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
450+ histos.add (" nsigmatof/mc_closure/pos/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
451+ histos.add (" nsigmatof/mc_closure/neg/ka" , " mc_closure dependent kaon" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
452452
453- histos.add (" nsigmatpc/mc_closure/pos/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
454- histos.add (" nsigmatpc/mc_closure/neg/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
455- histos.add (" nsigmatof/mc_closure/pos/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
456- histos.add (" nsigmatof/mc_closure/neg/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
453+ histos.add (" nsigmatpc/mc_closure/pos/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
454+ histos.add (" nsigmatpc/mc_closure/neg/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
455+ histos.add (" nsigmatof/mc_closure/pos/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
456+ histos.add (" nsigmatof/mc_closure/neg/pr" , " mc_closure dependent proton" , kTHnSparseD , {ptAxis, nsigmaTPCAxisOccupancy, multAxis});
457457
458458 if (doprocessOccupancy) {
459459 histos.add (" nsigmatpc/test_occupancy/Mult_vs_Occupancy" , " occuppancy vs Multiplicity" , kTHnSparseD , {multAxis, occupancyAxis});
@@ -1420,35 +1420,36 @@ struct tofSpectra {
14201420 aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs>;
14211421 using TrackCandidates = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA,
14221422 aod::pidEvTimeFlags, aod::TrackSelection, aod::TOFSignal>;
1423- void processMCclosure (CollisionCandidates::iterator const & collisions,
1424- soa::Join<TrackCandidates,
1425- aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
1426- aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr> const & tracks,
1427- aod::McTrackLabels const & mcTrackLabels, aod::McParticles const & mcParticles)
1423+ void processMCclosure (CollisionCandidates::iterator const & collisions,
1424+ soa::Join<TrackCandidates,
1425+ aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
1426+ aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr> const & tracks,
1427+ aod::McTrackLabels const & mcTrackLabels, aod::McParticles const & mcParticles)
14281428 {
14291429 const float multiplicity = getMultiplicity (collisions);
1430- int trackwoCut = 0 ; int trackwCut = 0 ;
1430+ int trackwoCut = 0 ;
1431+ int trackwCut = 0 ;
14311432
14321433 for (const auto & track : tracks) {
1433- if (!track.has_collision ()) {
1434- continue ;
1435- }
1436- const auto & collision = track.collision_as <CollisionCandidates>();
1437- if (!isEventSelected<false , false >(collision)) {
1434+ if (!track.has_collision ()) {
14381435 continue ;
14391436 }
1440- if (!isTrackSelected<true >(track, collision)) {
1437+ const auto & collision = track.collision_as <CollisionCandidates>();
1438+ if (!isEventSelected<false , false >(collision)) {
1439+ continue ;
1440+ }
1441+ if (!isTrackSelected<true >(track, collision)) {
14411442 continue ;
14421443 }
14431444 trackwoCut++;
1444- if (!std::abs (track.dcaXY ()) > 0.5 ) { // Skipping tracks that don't pass the standard cuts
1445- return ;
1446- }
1447- trackwCut++;
1448- const auto & mcLabel = mcTrackLabels.iteratorAt (track.globalIndex ());
1449- const auto & mcParticle = mcParticles.iteratorAt (mcLabel.mcParticleId ());
1450- int pdgCode = mcParticle.pdgCode ();
1451- const auto & nsigmaTPCPi = o2::aod::pidutils::tpcNSigma<2 >(track);
1445+ if (!std::abs (track.dcaXY ()) > 0.5 ) { // Skipping tracks that don't pass the standard cuts
1446+ return ;
1447+ }
1448+ trackwCut++;
1449+ const auto & mcLabel = mcTrackLabels.iteratorAt (track.globalIndex ());
1450+ const auto & mcParticle = mcParticles.iteratorAt (mcLabel.mcParticleId ());
1451+ int pdgCode = mcParticle.pdgCode ();
1452+ const auto & nsigmaTPCPi = o2::aod::pidutils::tpcNSigma<2 >(track);
14521453 const auto & nsigmaTPCKa = o2::aod::pidutils::tpcNSigma<3 >(track);
14531454 const auto & nsigmaTPCPr = o2::aod::pidutils::tpcNSigma<4 >(track);
14541455
@@ -1463,94 +1464,92 @@ const auto& nsigmaTPCPi = o2::aod::pidutils::tpcNSigma<2>(track);
14631464 bool isTOFPion = track.hasTOF () && std::abs (nsigmaTOFPi) < trkselOptions.cfgCutNsigma ;
14641465 bool isTOFKaon = track.hasTOF () && std::abs (nsigmaTOFKa) < trkselOptions.cfgCutNsigma ;
14651466 bool isTOFProton = track.hasTOF () && std::abs (nsigmaTOFPr) < trkselOptions.cfgCutNsigma ;
1466- // Precompute rapidity values to avoid redundant calculations
1467- double rapidityPi = std::abs (track.rapidity (PID::getMass (2 )));
1468- double rapidityKa = std::abs (track.rapidity (PID::getMass (3 )));
1469- double rapidityPr = std::abs (track.rapidity (PID::getMass (4 )));
1470- if (track.eta () < trkselOptions.cfgCutEtaMin || track.eta () > trkselOptions.cfgCutEtaMax ) {
1471- return ;
1472- }
1473- if (mcParticle.isPhysicalPrimary ()) {
1474- if (isTPCPion && rapidityPi <= trkselOptions.cfgCutY ) {
1475- if (usePDGcode){
1476- if (pdgCode == 211 ) {
1477- histos.fill (HIST (" nsigmatpc/mc_closure/pos/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1478- } else if (pdgCode == -211 ) {
1479- histos.fill (HIST (" nsigmatpc/mc_closure/neg/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1480- }
1481- } else {
1482- histos.fill (HIST (" nsigmatpc/mc_closure/pos/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1483- histos.fill (HIST (" nsigmatpc/mc_closure/neg/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1484- }
1485- }
1486- if (isTPCKaon && rapidityKa <= trkselOptions.cfgCutY ) {
1487- if (usePDGcode){
1488- if (pdgCode == 321 ) {
1489- histos.fill (HIST (" nsigmatpc/mc_closure/pos/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1490- } else if (pdgCode == -321 ) {
1491- histos.fill (HIST (" nsigmatpc/mc_closure/neg/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1492- }
1493- } else {
1494- histos.fill (HIST (" nsigmatpc/mc_closure/pos/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1495- histos.fill (HIST (" nsigmatpc/mc_closure/neg/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1496- }
1497- }
1498- if (isTPCProton && rapidityPr <= trkselOptions.cfgCutY ) {
1499- if (usePDGcode){
1500- if (pdgCode == 2212 ) {
1501- histos.fill (HIST (" nsigmatpc/mc_closure/pos/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1502- } else if (pdgCode == -2212 ) {
1503- histos.fill (HIST (" nsigmatpc/mc_closure/neg/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1504- }
1505- } else {
1506- histos.fill (HIST (" nsigmatpc/mc_closure/pos/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1507- histos.fill (HIST (" nsigmatpc/mc_closure/neg/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1508- }
1509- }
1510-
1511- // TOF Selection and Histogram Filling
1512- if (isTOFPion && rapidityPi <= trkselOptions.cfgCutY ) {
1513- if (usePDGcode){
1514- if (pdgCode == 211 ) {
1515- histos.fill (HIST (" nsigmatof/mc_closure/pos/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1516- }else if (pdgCode == -211 ) {
1517- histos.fill (HIST (" nsigmatof/mc_closure/neg/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1518- }
1519- }else {
1520- histos.fill (HIST (" nsigmatof/mc_closure/pos/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1521- histos.fill (HIST (" nsigmatof/mc_closure/neg/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1522- }
1523- }
1524- if (isTOFKaon && rapidityKa <= trkselOptions.cfgCutY ){
1525- if (usePDGcode){
1526- if (pdgCode == 321 ) {
1527- histos.fill (HIST (" nsigmatof/mc_closure/pos/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1528- } else if (pdgCode == -321 ) {
1529- histos.fill (HIST (" nsigmatof/mc_closure/neg/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1530- }
1531- }else {
1532- histos.fill (HIST (" nsigmatof/mc_closure/pos/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1533- histos.fill (HIST (" nsigmatof/mc_closure/neg/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1534- }
1535- }
1536- if (isTOFProton && rapidityPr <= trkselOptions.cfgCutY ) {
1537- if (usePDGcode){
1538- if (pdgCode == 2212 ) {
1539- histos.fill (HIST (" nsigmatof/mc_closure/pos/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1540- } else if (pdgCode == -2212 ) {
1541- histos.fill (HIST (" nsigmatof/mc_closure/neg/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1542- }
1543- }else {
1544- histos.fill (HIST (" nsigmatof/mc_closure/pos/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1545- histos.fill (HIST (" nsigmatof/mc_closure/neg/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1546- }
1547- }
1548- }
1549- }
1550-
1467+ // Precompute rapidity values to avoid redundant calculations
1468+ double rapidityPi = std::abs (track.rapidity (PID::getMass (2 )));
1469+ double rapidityKa = std::abs (track.rapidity (PID::getMass (3 )));
1470+ double rapidityPr = std::abs (track.rapidity (PID::getMass (4 )));
1471+ if (track.eta () < trkselOptions.cfgCutEtaMin || track.eta () > trkselOptions.cfgCutEtaMax ) {
1472+ return ;
1473+ }
1474+ if (mcParticle.isPhysicalPrimary ()) {
1475+ if (isTPCPion && rapidityPi <= trkselOptions.cfgCutY ) {
1476+ if (usePDGcode) {
1477+ if (pdgCode == 211 ) {
1478+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1479+ } else if (pdgCode == -211 ) {
1480+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1481+ }
1482+ } else {
1483+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1484+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/pi" ), track.pt (), nsigmaTPCPi, multiplicity);
1485+ }
1486+ }
1487+ if (isTPCKaon && rapidityKa <= trkselOptions.cfgCutY ) {
1488+ if (usePDGcode) {
1489+ if (pdgCode == 321 ) {
1490+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1491+ } else if (pdgCode == -321 ) {
1492+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1493+ }
1494+ } else {
1495+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1496+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/ka" ), track.pt (), nsigmaTPCKa, multiplicity);
1497+ }
1498+ }
1499+ if (isTPCProton && rapidityPr <= trkselOptions.cfgCutY ) {
1500+ if (usePDGcode) {
1501+ if (pdgCode == 2212 ) {
1502+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1503+ } else if (pdgCode == -2212 ) {
1504+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1505+ }
1506+ } else {
1507+ histos.fill (HIST (" nsigmatpc/mc_closure/pos/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1508+ histos.fill (HIST (" nsigmatpc/mc_closure/neg/pr" ), track.pt (), nsigmaTPCPr, multiplicity);
1509+ }
1510+ }
15511511
1512+ // TOF Selection and Histogram Filling
1513+ if (isTOFPion && rapidityPi <= trkselOptions.cfgCutY ) {
1514+ if (usePDGcode) {
1515+ if (pdgCode == 211 ) {
1516+ histos.fill (HIST (" nsigmatof/mc_closure/pos/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1517+ } else if (pdgCode == -211 ) {
1518+ histos.fill (HIST (" nsigmatof/mc_closure/neg/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1519+ }
1520+ } else {
1521+ histos.fill (HIST (" nsigmatof/mc_closure/pos/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1522+ histos.fill (HIST (" nsigmatof/mc_closure/neg/pi" ), track.pt (), nsigmaTOFPi, multiplicity);
1523+ }
1524+ }
1525+ if (isTOFKaon && rapidityKa <= trkselOptions.cfgCutY ) {
1526+ if (usePDGcode) {
1527+ if (pdgCode == 321 ) {
1528+ histos.fill (HIST (" nsigmatof/mc_closure/pos/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1529+ } else if (pdgCode == -321 ) {
1530+ histos.fill (HIST (" nsigmatof/mc_closure/neg/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1531+ }
1532+ } else {
1533+ histos.fill (HIST (" nsigmatof/mc_closure/pos/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1534+ histos.fill (HIST (" nsigmatof/mc_closure/neg/ka" ), track.pt (), nsigmaTOFKa, multiplicity);
1535+ }
1536+ }
1537+ if (isTOFProton && rapidityPr <= trkselOptions.cfgCutY ) {
1538+ if (usePDGcode) {
1539+ if (pdgCode == 2212 ) {
1540+ histos.fill (HIST (" nsigmatof/mc_closure/pos/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1541+ } else if (pdgCode == -2212 ) {
1542+ histos.fill (HIST (" nsigmatof/mc_closure/neg/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1543+ }
1544+ } else {
1545+ histos.fill (HIST (" nsigmatof/mc_closure/pos/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1546+ histos.fill (HIST (" nsigmatof/mc_closure/neg/pr" ), track.pt (), nsigmaTOFPr, multiplicity);
1547+ }
1548+ }
1549+ }
1550+ }
15521551 }
1553- PROCESS_SWITCH (tofSpectra, processMCclosure, " MC closure test" , true );
1552+ PROCESS_SWITCH (tofSpectra, processMCclosure, " MC closure test" , true );
15541553 void processOccupancy (CollisionCandidates::iterator const & collision,
15551554 soa::Join<TrackCandidates,
15561555 aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
0 commit comments