Skip to content

Commit 7fbd081

Browse files
committed
[xic0xicp] Removed dupulications, Fixed variables name
1 parent 380dc15 commit 7fbd081

File tree

1 file changed

+42
-56
lines changed

1 file changed

+42
-56
lines changed

PWGHF/TableProducer/candidateCreatorXic0XicpToHadronic.cxx

Lines changed: 42 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -171,15 +171,15 @@ struct HfCandidateCreatorXic0XicpToHadronic {
171171

172172
void init(InitContext const&)
173173
{
174-
std::vector<bool> allProcesses{doprocessXic0WithDCAFitterNoCent, doprocessXic0WithKFParticleNoCent, doprocessXicpWithDCAFitterNoCent, doprocessXicpWithKFParticleNoCent, doprocessCollisionsNoCent};
174+
//std::vector<bool> allProcesses{doprocessXic0WithDCAFitterNoCent, doprocessXic0WithKFParticleNoCent, doprocessXicpWithDCAFitterNoCent, doprocessXicpWithKFParticleNoCent, doprocessCollisionsNoCent};
175175
std::vector<bool> processesXic0{doprocessXic0WithDCAFitterNoCent, doprocessXic0WithKFParticleNoCent};
176176
std::vector<bool> processesXicp{doprocessXicpWithDCAFitterNoCent, doprocessXicpWithKFParticleNoCent};
177177
std::vector<bool> processesCollMonitoring{doprocessCollisionsNoCent};
178178

179179
// Exit if workflow is not configured correctly - None of the workflows were enablec
180-
if (std::accumulate(allProcesses.begin(), allProcesses.end(), 0) == 0) {
181-
LOGP(fatal, "No process function enabled or More than one process function enabled. Select one process function");
182-
}
180+
//if (std::accumulate(allProcesses.begin(), allProcesses.end(), 0) == 0) {
181+
// LOGP(fatal, "No process function enabled or More than one process function enabled. Select one process function");
182+
//}
183183

184184
// Exit if workflow is not configured correctly - More than one process enabled for Xic0
185185
if (std::accumulate(processesXic0.begin(), processesXic0.end(), 0) > 1) {
@@ -192,7 +192,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
192192
}
193193

194194
// Exit if workflow is not configured correctly - More than one process enabled for collision monitoring
195-
if (std::accumulate(processesCollMonitoring.begin(), processesCollMonitoring.end(), 1) > 1) {
195+
if (std::accumulate(processesCollMonitoring.begin(), processesCollMonitoring.end(), 0) > 1) {
196196
LOGP(fatal, "More than one process fucntion for CollMonitoring was enabled. Please choose only one process function");
197197
}
198198

@@ -347,7 +347,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
347347
}
348348
auto casc = cascAodElement.cascData_as<CascFull>();
349349
auto trackCharmBachelor = cand.prong0_as<TracksWCovDcaExtraPidPrPi>();
350-
auto cascCharge = casc.sign() > 0 ? 1 : -1;
350+
auto chargeCasc = casc.sign() > 0 ? 1 : -1;
351351

352352
if (configs.doCascadePreselection) {
353353
if (std::abs(casc.dcaXYCascToPV()) > configs.dcaXYToPVCascadeMax) {
@@ -391,9 +391,9 @@ struct HfCandidateCreatorXic0XicpToHadronic {
391391
}
392392

393393
o2::track::TrackParCov trackCasc;
394-
if (cascCharge < 0) { // Xi-
394+
if (chargeCasc < 0) { // Xi-
395395
trackCasc = o2::track::TrackParCov(vertexCasc, pVecCasc, covCasc, -1, true);
396-
} else if(cascCharge >0 ) { // Xi+
396+
} else if(chargeCasc >0 ) { // Xi+
397397
trackCasc = o2::track::TrackParCov(vertexCasc, pVecCasc, covCasc, 1, true);
398398
} else {
399399
continue;
@@ -462,32 +462,26 @@ struct HfCandidateCreatorXic0XicpToHadronic {
462462
auto errorDecayLengthXY = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phi, 0.) + getRotatedCovMatrixXX(covMatrixSV, phi, 0.));
463463

464464
//------------------------------Get PID Information-----------------------------
465+
// Charm Bachelor Pion
465466
float nSigTpcPiFromXic0 = trackCharmBachelor.tpcNSigmaPi();
466467
float nSigTofPiFromXic0 = trackCharmBachelor.tofNSigmaPi();
467-
468+
// Bachelor pion
468469
auto trackPionFromXi = casc.bachelor_as<TracksWCovDcaExtraPidPrPi>();
469470
float nSigTpcBachelorPi = trackPionFromXi.tpcNSigmaPi();
470471
float nSigTofBachelorPi = trackPionFromXi.tofNSigmaPi();
472+
// V0 daughters
473+
auto trackPosLambdaDaughter = casc.posTrack_as<TracksWCovDcaExtraPidPrPi>(); // If charge of cascade is negative, this should be track of proton
474+
auto trackNegLambdaDaughter = casc.negTrack_as<TracksWCovDcaExtraPidPrPi>(); // If charge of cascade is negative, this shoud be track of pion
471475

472-
auto trackPosLambdaDaughter = casc.posTrack_as<TracksWCovDcaExtraPidPrPi>();
473-
auto trackNegLambdaDaughter = casc.negTrack_as<TracksWCovDcaExtraPidPrPi>();
474-
float pPiFromLambda, pPrFromLambda;
475-
float nSigTpcPiFromLambda, nSigTofPiFromLambda, nSigTpcPrFromLambda, nSigTofPrFromLambda;
476-
if (cascCharge < 0) { // Xi- -> Lambda0 + Pi- -> (Pr + Pi-) + Pi-
477-
pPiFromLambda = trackNegLambdaDaughter.p();
478-
nSigTpcPiFromLambda = trackNegLambdaDaughter.tpcNSigmaPi();
479-
nSigTofPiFromLambda = trackNegLambdaDaughter.tofNSigmaPi();
480-
pPrFromLambda = trackPosLambdaDaughter.p();
481-
nSigTpcPrFromLambda = trackPosLambdaDaughter.tpcNSigmaPr();
482-
nSigTofPrFromLambda = trackPosLambdaDaughter.tofNSigmaPr();
483-
} else { // Xi+ -> anit-lambda0 + Pi+ -> (anti-Pr + Pi+) + pi+
484-
pPiFromLambda = trackPosLambdaDaughter.p();
485-
nSigTpcPiFromLambda = trackPosLambdaDaughter.tpcNSigmaPi();
486-
nSigTofPiFromLambda = trackPosLambdaDaughter.tofNSigmaPi();
487-
pPrFromLambda = trackNegLambdaDaughter.p();
488-
nSigTpcPrFromLambda = trackNegLambdaDaughter.tpcNSigmaPr();
489-
nSigTofPrFromLambda = trackNegLambdaDaughter.tofNSigmaPr();
490-
}
476+
auto trackProtonFromLambda = chargeCasc < 0 ? trackPosLambdaDaughter : trackNegLambdaDaughter;
477+
auto trackPionFromLambda = chargeCasc < 0 ? trackNegLambdaDaughter : trackPosLambdaDaughter;
478+
479+
float pPrFromLambda = trackProtonFromLambda.p();
480+
float nSigTpcPrFromLambda = trackProtonFromLambda.tpcNSigmaPr();
481+
float nSigTofPrFromLambda = trackProtonFromLambda.tofNSigmaPr();
482+
float pPiFromLambda = trackPionFromLambda.p();
483+
float nSigTpcPiFromLambda = trackPionFromLambda.tpcNSigmaPi();
484+
float nSigTofPiFromLambda = trackPionFromLambda.tofNSigmaPi();
491485

492486
//------------------------------Fill QA histograms-----------------------------
493487
if (configs.fillHistograms) {
@@ -523,7 +517,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
523517
/* Decay length error */
524518
errorDecayLength, errorDecayLengthXY,
525519
/* Chi2CPA, InvMass, cascade charge */
526-
chi2SV, massXiPi, cascCharge,
520+
chi2SV, massXiPi, chargeCasc,
527521
/* Cascade, charm bachelor's momentum */
528522
pVecXi[0], pVecXi[1], pVecXi[2],
529523
pVecPi[0], pVecPi[1], pVecPi[2],
@@ -580,8 +574,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
580574
continue;
581575
}
582576
auto casc = cascAodElement.kfCascData_as<KFCascFull>(); // -> Need to understand this
583-
auto trackCharmBachelor = cand.prong0_as<TracksWCovDcaExtraPidPrPi>();
584-
auto cascCharge = casc.sign() > 0 ? 1 : -1;
577+
auto chargeCasc = casc.sign() > 0 ? 1 : -1;
585578

586579
if (configs.doCascadePreselection) {
587580
if (std::abs(casc.dcaXYCascToPV()) > configs.dcaXYToPVCascadeMax) {
@@ -591,7 +584,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
591584
continue;
592585
}
593586
}
594-
587+
595588
if (configs.fillHistograms) {
596589
registry.fill(HIST("hCandCounter"), CascPreSel);
597590
registry.fill(HIST("hXiMassAfterConstrain"), casc.mXi());
@@ -624,6 +617,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
624617
KFParticle kfPv(kfpVertex); // -> For calculation of DCAs to PV
625618

626619
// convert charm bachelor pion tracks into KFParticle object
620+
auto trackCharmBachelor = cand.prong0_as<TracksWCovDcaExtraPidPrPi>();
627621
KFPTrack kfpTrackCharmBachelor = createKFPTrackFromTrack(trackCharmBachelor);
628622
KFParticle kfCharmBachelor(kfpTrackCharmBachelor, kPiPlus);
629623

@@ -739,34 +733,26 @@ struct HfCandidateCreatorXic0XicpToHadronic {
739733
float kfDecayLengthXYNormalised = ldlXYFromKF(kfXic0, kfPv);
740734

741735
//-----Get PID information-----
736+
// Charm Bachelor pion
742737
float nSigTpcPiFromXic0 = trackCharmBachelor.tpcNSigmaPi();
743738
float nSigTofPiFromXic0 = trackCharmBachelor.tofNSigmaPi();
744739
// Bachelor pion(pion from cascade decay)
745740
auto trackPionFromXi = casc.bachelor_as<TracksWCovDcaExtraPidPrPi>();
746741
float nSigTpcBachelorPi = trackPionFromXi.tpcNSigmaPi();
747742
float nSigTofBachelorPi = trackPionFromXi.tofNSigmaPi();
748743
// V0 daughters
749-
auto trackPosLambdaDaughter = casc.posTrack_as<TracksWCovDcaExtraPidPrPi>();
750-
auto trackNegLambdaDaughter = casc.negTrack_as<TracksWCovDcaExtraPidPrPi>();
751-
float pPiFromLambda, pPrFromLambda;
752-
float nSigTpcPiFromLambda, nSigTofPiFromLambda;
753-
float nSigTpcPrFromLambda, nSigTofPrFromLambda;
754-
if (casc.sign() < 0) { // xi- -> lambda pi- -> (p pi-)pi-
755-
// FIXME If this hypothesis is correct, bachelor pion's sign should be negative -> Please check!
756-
pPrFromLambda = trackPosLambdaDaughter.p();
757-
pPiFromLambda = trackNegLambdaDaughter.p();
758-
nSigTpcPrFromLambda = trackPosLambdaDaughter.tpcNSigmaPr();
759-
nSigTofPrFromLambda = trackPosLambdaDaughter.tofNSigmaPr();
760-
nSigTpcPiFromLambda = trackNegLambdaDaughter.tpcNSigmaPi();
761-
nSigTofPiFromLambda = trackNegLambdaDaughter.tofNSigmaPi();
762-
} else { // xi+ -> lambda pi+ -> (anti-p pi+)pi+
763-
pPrFromLambda = trackNegLambdaDaughter.p();
764-
pPiFromLambda = trackPosLambdaDaughter.p();
765-
nSigTpcPrFromLambda = trackNegLambdaDaughter.tpcNSigmaPr();
766-
nSigTofPrFromLambda = trackNegLambdaDaughter.tofNSigmaPr();
767-
nSigTpcPiFromLambda = trackPosLambdaDaughter.tpcNSigmaPi();
768-
nSigTofPiFromLambda = trackPosLambdaDaughter.tofNSigmaPi();
769-
}
744+
auto trackPosLambdaDaughter = casc.posTrack_as<TracksWCovDcaExtraPidPrPi>(); // If charge of cascade is negative, this should be track of proton
745+
auto trackNegLambdaDaughter = casc.negTrack_as<TracksWCovDcaExtraPidPrPi>(); // If charge of cascade is negative, this shoud be track of pion
746+
747+
auto trackProtonFromLambda = chargeCasc < 0 ? trackPosLambdaDaughter : trackNegLambdaDaughter;
748+
auto trackPionFromLambda = chargeCasc < 0 ? trackNegLambdaDaughter : trackPosLambdaDaughter;
749+
750+
float pPrFromLambda = trackProtonFromLambda.p();
751+
float nSigTpcPrFromLambda = trackProtonFromLambda.tpcNSigmaPr();
752+
float nSigTofPrFromLambda = trackProtonFromLambda.tofNSigmaPr();
753+
float pPiFromLambda = trackPionFromLambda.p();
754+
float nSigTpcPiFromLambda = trackPionFromLambda.tpcNSigmaPi();
755+
float nSigTofPiFromLambda = trackPionFromLambda.tofNSigmaPi();
770756

771757
//------------------------------Calculate physical quantities and fill candidate table------------------------------
772758
if (configs.fillHistograms) {
@@ -803,7 +789,7 @@ struct HfCandidateCreatorXic0XicpToHadronic {
803789
/*DecayLength error*/
804790
errKfDecayLength, errKfDecayLengthXY,
805791
/*Chi2 of Geo from KF method, Invmass, cascade charge*/
806-
chi2GeoXic0, massXiPi, cascCharge,
792+
chi2GeoXic0, massXiPi, chargeCasc,
807793
/*Cascade, charm bachelor's momentum*/
808794
kfXi.GetPx(), kfXi.GetPy(), kfXi.GetPz(),
809795
kfCharmBachelor.GetPx(), kfCharmBachelor.GetPy(), kfCharmBachelor.GetPz(),
@@ -1322,9 +1308,9 @@ struct HfCandidateCreatorXic0XicpToHadronic {
13221308
auto trackNegLambdaDaughter = casc.negTrack_as<TracksWCovDcaExtraPidPrPi>();
13231309
float pPiFromLambda, pPrFromLambda, nSigTpcPiFromLambda, nSigTofPiFromLambda, nSigTpcPrFromLambda, nSigTofPrFromLambda;
13241310

1325-
auto cascCharge = casc.sign() > 0 ? 1 : -1;
1311+
auto chargeCasc = casc.sign() > 0 ? 1 : -1;
13261312

1327-
if (cascCharge < 0) {
1313+
if (chargeCasc < 0) {
13281314
pPiFromLambda = trackNegLambdaDaughter.p();
13291315
nSigTpcPiFromLambda = trackNegLambdaDaughter.tpcNSigmaPi();
13301316
nSigTofPiFromLambda = trackNegLambdaDaughter.tofNSigmaPi();

0 commit comments

Comments
 (0)