@@ -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)
1428- {
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)
1428+ {
14291429 const float multiplicity = getMultiplicity (collisions);
1430- // int trackwoCut = 0; int trackwCut = 0;
1430+ // int trackwoCut = 0; int trackwCut = 0;
14311431
14321432 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)) {
1433+ if (!track.has_collision ()) {
1434+ continue ;
1435+ }
1436+ const auto & collision = track.collision_as <CollisionCandidates>();
1437+ if (!isEventSelected<false , false >(collision)) {
14381438 continue ;
14391439 }
1440- if (!isTrackSelected<true >(track, collision)) {
1440+ if (!isTrackSelected<true >(track, collision)) {
14411441 continue ;
14421442 }
1443- // 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);
1443+ // trackwoCut++;
1444+ if (std::abs (track.dcaXY ()) > 0.5 ) { // Skipping tracks that don't pass the standard cuts
1445+ return ;
1446+ }
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,92 +1464,94 @@ struct tofSpectra {
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- }
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 ;
15491473 }
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+ }
1511+
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+ }
1551+
1552+
15501553 }
1551- PROCESS_SWITCH (tofSpectra, processMCclosure, " MC closure test" , true );
1554+ PROCESS_SWITCH (tofSpectra, processMCclosure, " MC closure test" , true );
15521555 void processOccupancy (CollisionCandidates::iterator const & collision,
15531556 soa::Join<TrackCandidates,
15541557 aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
@@ -2535,12 +2538,12 @@ struct tofSpectra {
25352538 fillParticleHistograms_MCGenEvs<i>(mcParticle, mcCollision);
25362539 });
25372540 }
2538- if (mcCollision.isInelGt0 ()) {
2539- histos.fill (HIST (" MC/GenRecoCollisions" ), 3 .f );
2540- }
2541- if (mcCollision.isInelGt1 ()) {
2542- histos.fill (HIST (" MC/GenRecoCollisions" ), 4 .f );
2543- }
2541+ if (mcCollision.isInelGt0 ()) {
2542+ histos.fill (HIST (" MC/GenRecoCollisions" ), 3 .f );
2543+ }
2544+ if (mcCollision.isInelGt1 ()) {
2545+ histos.fill (HIST (" MC/GenRecoCollisions" ), 4 .f );
2546+ }
25442547 if (hasParticleInFT0C && hasParticleInFT0A) {
25452548 histos.fill (HIST (" MC/GenRecoCollisions" ), 5 .f );
25462549 }
0 commit comments