Skip to content

Commit 2542e37

Browse files
authored
Update spectraTOF.cxx
1 parent e977216 commit 2542e37

File tree

1 file changed

+127
-124
lines changed

1 file changed

+127
-124
lines changed

PWGLF/Tasks/Nuspex/spectraTOF.cxx

Lines changed: 127 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)