Skip to content

Commit e734f41

Browse files
authored
Update nucleitpcpbpb.cxx
1 parent 9d84cd8 commit e734f41

File tree

1 file changed

+62
-51
lines changed

1 file changed

+62
-51
lines changed

PWGLF/Tasks/Nuspex/nucleitpcpbpb.cxx

Lines changed: 62 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ struct NucleitpcPbPb {
111111
Configurable<bool> cfgRigidityCorrection{"cfgRigidityCorrection", false, "apply rigidity correction"};
112112
// Track Selection Cuts
113113
Configurable<float> cfgCutEta{"cfgCutEta", 0.9f, "Eta range for tracks"};
114+
Configurable<bool> cfgetaRequire{"cfgetaRequire", true, "eta cut require"};
115+
Configurable<bool> cfgetaRequireMC{"cfgetaRequireMC", true, "eta cut require for generated particles"};
116+
Configurable<bool> cfgrapidityRequireMC{"cfgrapidityRequireMC", true, "rapidity cut require for generated particles"};
114117
Configurable<bool> cfgUsePVcontributors{"cfgUsePVcontributors", true, "use tracks that are PV contibutors"};
115118
Configurable<bool> cfgITSrequire{"cfgITSrequire", true, "Additional cut on ITS require"};
116119
Configurable<bool> cfgTPCrequire{"cfgTPCrequire", true, "Additional cut on TPC require"};
@@ -146,6 +149,9 @@ struct NucleitpcPbPb {
146149
Configurable<float> centcut{"centcut", 80.0f, "centrality cut"};
147150
Configurable<float> cfgCutRapidity{"cfgCutRapidity", 0.5f, "Rapidity range"};
148151
Configurable<float> cfgZvertex{"cfgZvertex", 10, "Min Z Vertex"};
152+
Configurable<bool> cfgZvertexRequire{"cfgZvertexRequire", true, "Pos Z cut require"};
153+
Configurable<bool> cfgZvertexRequireMC{"cfgZvertexRequireMC", true, "Pos Z cut require for generated particles"};
154+
Configurable<bool> cfgsel8Require{"cfgsel8Require", true, "sel8 cut require"};
149155
Configurable<float> cfgITSnsigma{"cfgITSnsigma", 5, "Max ITS nsigma value"};
150156
Configurable<float> cfgtpcNClsFound{"cfgtpcNClsFound", 100.0f, "min. no. of tpcNClsFound"};
151157
Configurable<float> cfgitsNCls{"cfgitsNCls", 2.0f, "min. no. of itsNCls"};
@@ -163,6 +169,7 @@ struct NucleitpcPbPb {
163169
ConfigurableAxis axisrapidity{"axisrapidity", {100, -2, 2}, "rapidity"};
164170
ConfigurableAxis axismass{"axismass", {100, -10, 10}, "mass^{2}"};
165171
ConfigurableAxis nsigmaAxis{"nsigmaAxis", {160, -20, 20}, "n#sigma_{#pi^{+}}"};
172+
ConfigurableAxis ImptParAxis{"ImptParAxis", {100, 0, 20}, "impact parameter"};
166173
// CCDB
167174
Service<o2::ccdb::BasicCCDBManager> ccdb;
168175
Configurable<double> bField{"bField", -999, "bz field, -999 is automatic"};
@@ -232,6 +239,7 @@ struct NucleitpcPbPb {
232239

233240
if (doprocessMC) {
234241
histomc.add("histVtxZgen", "histVtxZgen", kTH1F, {axisVtxZ});
242+
histomc.add("ImptParameter", "ImptParameter", kTH1F, {ImptParAxis});
235243
histomc.add("histEtagen", "histEtagen", kTH1F, {axiseta});
236244
histomc.add("histPtgenHe3", "histPtgenHe3", kTH1F, {ptAxis});
237245
histomc.add("histPtgenAntiHe3", "histPtgenAntiHe3", kTH1F, {ptAxis});
@@ -266,7 +274,7 @@ struct NucleitpcPbPb {
266274
continue;
267275
if (!track.passedTPCRefit() && cfgPassedTPCRefit)
268276
continue;
269-
if (std::abs(track.eta()) > cfgCutEta)
277+
if (std::abs(track.eta()) > cfgCutEta && cfgetaRequire)
270278
continue;
271279
for (size_t i = 0; i < primaryParticles.size(); i++) {
272280
if (std::abs(getRapidity(track, i)) > cfgCutRapidity && cfgRapidityRequire)
@@ -326,12 +334,12 @@ struct NucleitpcPbPb {
326334
if ((getRigidity(track) > cfgTrackPIDsettings->get(i, "TOFrequiredabove") && (tofMasses < cfgTrackPIDsettings->get(i, "minTOFmass") || tofMasses > cfgTrackPIDsettings->get(i, "maxTOFmass"))) && cfgmassRequire)
327335
continue;
328336
fillhmass(track, i);
337+
if (cfgRequirebetaplot) {
338+
histos.fill(HIST("Tofsignal"), getRigidity(track) * track.sign(), o2::pid::tof::Beta::GetBeta(track));
339+
}
340+
filldedx(track, nParticles);
329341
}
330342
histos.fill(HIST("histeta"), track.eta());
331-
if (cfgRequirebetaplot) {
332-
histos.fill(HIST("Tofsignal"), getRigidity(track), o2::pid::tof::Beta::GetBeta(track));
333-
}
334-
filldedx(track, nParticles);
335343
} // track loop
336344
}
337345
//----------------------------------------------------------------------------------------------------------------
@@ -380,18 +388,19 @@ struct NucleitpcPbPb {
380388
mcCollInfos.resize(mcCollisions.size());
381389
// ----------------------------- Generated particles loop -----------------------------
382390
for (auto const& mcColl : mcCollisions) {
383-
if (std::abs(mcColl.posZ()) > cfgZvertex)
391+
if (std::abs(mcColl.posZ()) > cfgZvertex && cfgZvertexRequireMC)
384392
continue;
385393
histomc.fill(HIST("histVtxZgen"), mcColl.posZ());
394+
histomc.fill(HIST("ImptParameter"), mcColl.impactParameter());
386395
for (auto const& mcParticle : particlesMC) {
387396
if (mcParticle.mcCollisionId() != mcColl.globalIndex())
388397
continue;
389398
if (!mcParticle.isPhysicalPrimary())
390399
continue;
391400
int pdgCode = mcParticle.pdgCode();
392-
if (std::abs(mcParticle.y()) > cfgCutRapidity)
401+
if (std::abs(mcParticle.y()) > cfgCutRapidity && cfgrapidityRequireMC)
393402
continue;
394-
if (std::abs(mcParticle.eta()) > cfgCutEta)
403+
if (std::abs(mcParticle.eta()) > cfgCutEta && cfgetaRequireMC)
395404
continue;
396405
histomc.fill(HIST("histEtagen"), mcParticle.eta());
397406
float ptScaled = mcParticle.pt();
@@ -415,9 +424,11 @@ struct NucleitpcPbPb {
415424
initCCDB(bc);
416425
collHasCandidate = false;
417426
histomc.fill(HIST("histNevReco"), 0.5);
418-
collPassedEvSel = collision.sel8() && std::abs(collision.posZ()) < cfgZvertex;
427+
if (std::abs(collision.posZ()) > cfgZvertex && cfgZvertexRequire)
428+
continue;
429+
collPassedEvSel = collision.sel8();
419430
occupancy = collision.trackOccupancyInTimeRange();
420-
if (!collPassedEvSel)
431+
if (!collPassedEvSel && cfgsel8Require)
421432
continue;
422433
histomc.fill(HIST("histNevReco"), 1.5);
423434
histomc.fill(HIST("histVtxZReco"), collision.posZ());
@@ -456,7 +467,7 @@ struct NucleitpcPbPb {
456467
continue;
457468
if (!track.passedTPCRefit() && cfgPassedTPCRefit)
458469
continue;
459-
if (std::abs(track.eta()) > cfgCutEta)
470+
if (std::abs(track.eta()) > cfgCutEta && cfgetaRequire)
460471
continue;
461472
if (!matchedMCParticle.isPhysicalPrimary())
462473
continue;
@@ -519,52 +530,52 @@ struct NucleitpcPbPb {
519530
if ((getRigidity(track) > cfgTrackPIDsettings->get(i, "TOFrequiredabove") && (tofMasses < cfgTrackPIDsettings->get(i, "minTOFmass") || tofMasses > cfgTrackPIDsettings->get(i, "maxTOFmass"))) && cfgmassRequire)
520531
continue;
521532
fillhmass(track, i);
522-
}
523-
histos.fill(HIST("histeta"), track.eta());
524-
if (cfgRequirebetaplot) {
525-
histos.fill(HIST("Tofsignal"), getRigidity(track), o2::pid::tof::Beta::GetBeta(track));
526-
}
527-
filldedx(track, nParticles);
528-
/*----------------------------------------------------------------------------------------------------------------*/
529-
float ptReco;
530-
setTrackParCov(track, mTrackParCov);
531-
mTrackParCov.setPID(track.pidForTracking());
532-
ptReco = (std::abs(pdg) == particlePdgCodes.at(4) || std::abs(pdg) == particlePdgCodes.at(5)) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
533-
if (pdg == -particlePdgCodes.at(5) && cfgmccorrectionhe4Require) {
534-
ptReco = ptReco + 0.00765 + 0.503791 * std::exp(-1.10517 * ptReco);
535-
}
533+
if (cfgRequirebetaplot) {
534+
histos.fill(HIST("Tofsignal"), getRigidity(track) * track.sign(), o2::pid::tof::Beta::GetBeta(track));
535+
}
536+
filldedx(track, nParticles);
537+
/*----------------------------------------------------------------------------------------------------------------*/
538+
float ptReco;
539+
mTrackParCov.setPID(track.pidForTracking());
540+
ptReco = (std::abs(pdg) == particlePdgCodes.at(4) || std::abs(pdg) == particlePdgCodes.at(5)) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
541+
if (pdg == -particlePdgCodes.at(5) && cfgmccorrectionhe4Require) {
542+
ptReco = ptReco + 0.00765 + 0.503791 * std::exp(-1.10517 * ptReco);
543+
}
536544

537-
if (pdg == -particlePdgCodes.at(4) && cfgmccorrectionhe4Require) {
538-
int pidGuess = track.pidForTracking();
539-
int antitriton = 6;
540-
if (pidGuess == antitriton) {
541-
ptReco = ptReco - 0.464215 + 0.195771 * ptReco - 0.0183111 * ptReco * ptReco;
545+
if (pdg == -particlePdgCodes.at(4) && cfgmccorrectionhe4Require) {
546+
int pidGuess = track.pidForTracking();
547+
int antitriton = 6;
548+
if (pidGuess == antitriton) {
549+
ptReco = ptReco - 0.464215 + 0.195771 * ptReco - 0.0183111 * ptReco * ptReco;
542550
// LOG(info) << "we have he3" << pidGuess;
551+
}
543552
}
544-
}
545-
float ptGen = matchedMCParticle.pt();
546-
float deltaPt = ptReco - ptGen;
553+
float ptGen = matchedMCParticle.pt();
554+
float deltaPt = ptReco - ptGen;
547555

548-
if (pdg == -particlePdgCodes.at(4)) {
549-
histomc.fill(HIST("histDeltaPtVsPtGen"), ptReco, deltaPt);
550-
histomc.fill(HIST("histPIDtrack"), ptReco, track.pidForTracking());
551-
}
552-
if (pdg == -particlePdgCodes.at(5)) {
553-
histomc.fill(HIST("histDeltaPtVsPtGenHe4"), ptReco, deltaPt);
554-
}
555-
if (pdg == particlePdgCodes.at(4)) {
556-
histomc.fill(HIST("histPtRecoHe3"), ptReco);
557-
} else if (pdg == -particlePdgCodes.at(4)) {
558-
histomc.fill(HIST("histPtRecoAntiHe3"), ptReco);
559-
} else if (pdg == particlePdgCodes.at(5)) {
560-
histomc.fill(HIST("histPtRecoHe4"), ptReco);
561-
} else if (pdg == -particlePdgCodes.at(5)) {
562-
histomc.fill(HIST("histPtRecoAntiHe4"), ptReco);
556+
if (pdg == -particlePdgCodes.at(4)) {
557+
histomc.fill(HIST("histDeltaPtVsPtGen"), ptReco, deltaPt);
558+
histomc.fill(HIST("histPIDtrack"), ptReco, track.pidForTracking());
559+
}
560+
if (pdg == -particlePdgCodes.at(5)) {
561+
histomc.fill(HIST("histDeltaPtVsPtGenHe4"), ptReco, deltaPt);
562+
}
563+
if (pdg == particlePdgCodes.at(4)) {
564+
histomc.fill(HIST("histPtRecoHe3"), ptReco);
565+
} else if (pdg == -particlePdgCodes.at(4)) {
566+
histomc.fill(HIST("histPtRecoAntiHe3"), ptReco);
567+
} else if (pdg == particlePdgCodes.at(5)) {
568+
histomc.fill(HIST("histPtRecoHe4"), ptReco);
569+
} else if (pdg == -particlePdgCodes.at(5)) {
570+
histomc.fill(HIST("histPtRecoAntiHe4"), ptReco);
571+
}
563572
}
573+
histos.fill(HIST("histeta"), track.eta());
574+
/*----------------------------------------------------------------------------------------------------------------*/
564575
} // Track loop
565576
} // Collision loop
566577
}
567-
PROCESS_SWITCH(NucleitpcPbPb, processMC, "MC reco+gen analysis", true);
578+
PROCESS_SWITCH(NucleitpcPbPb, processMC, "MC reco+gen analysis", false);
568579
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
569580
void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
570581
{
@@ -673,9 +684,9 @@ struct NucleitpcPbPb {
673684
mTrackParCov.setPID(track.pidForTracking());
674685
ptMomn = (species == he3 || species == he4) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
675686
if (track.sign() > 0) {
676-
hmass[2 * species]->Fill(ptMomn, massDiff * massDiff);
687+
hmass[2 * species]->Fill(ptMomn, massDiff);
677688
} else if (track.sign() < 0) {
678-
hmass[2 * species + 1]->Fill(ptMomn, massDiff * massDiff);
689+
hmass[2 * species + 1]->Fill(ptMomn, massDiff);
679690
}
680691
}
681692
//----------------------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)