@@ -52,6 +52,7 @@ using namespace o2::framework::expressions;
5252namespace
5353{
5454struct NPCascCandidate {
55+ int runNumber;
5556 int64_t mcParticleId;
5657 int64_t trackGlobID;
5758 int64_t trackITSID;
@@ -127,6 +128,7 @@ struct NPCascCandidate {
127128 float centFT0M;
128129 int multNTracksGlobal;
129130 uint32_t toiMask;
131+ bool noSameBunchPileup;
130132};
131133std::array<bool , 2 > isFromHF (auto & particle)
132134{
@@ -211,6 +213,16 @@ struct NonPromptCascadeTask {
211213 o2::vertexing::DCAFitterN<2 > mDCAFitter ;
212214 std::array<int , 2 > mProcessCounter = {0 , 0 }; // {Tracked, All}
213215 std::map<uint64_t , uint32_t > mToiMap ;
216+ std::unordered_set<int > mRuns ;
217+ std::shared_ptr<TH2> mHistPointer1 ;
218+ std::shared_ptr<TH2> mHistPointer2 ;
219+ std::shared_ptr<TH2> mHistPointer3 ;
220+ std::shared_ptr<TH2> mHistPointer4 ;
221+ AxisSpec multAxis = {10000 , 0 , 10000 , " Multiplicity FT0M" };
222+ AxisSpec centAxis = {2021 , -0.025 , 101.025 , " Centrality" };
223+ AxisSpec centAxisZoom = {2000 , -0.0025 , 10.0025 , " Centrality" };
224+ AxisSpec multAxisZoom = {7000 , 3000 , 10000 , " Multiplicity FT0M" };
225+ AxisSpec nTracksAxis = {100 , 0 ., 100 ., " NTracksGlobal" };
214226
215227 void initCCDB (aod::BCsWithTimestamps::iterator const & bc)
216228 {
@@ -248,11 +260,6 @@ struct NonPromptCascadeTask {
248260
249261 std::vector<double > ptBinning = {0.4 , 0.8 , 1.2 , 1.6 , 2.0 , 2.4 , 2.8 , 3.2 , 3.6 , 4.0 , 4.4 , 4.8 , 5.2 , 5.6 , 6.0 };
250262 // AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"};
251- AxisSpec centAxis = {101 , 0 ., 101 ., " Centrality" };
252- AxisSpec centAxisZoom = {100 , 0 ., 10 ., " Centrality" };
253- AxisSpec multAxis = {10000 , 0 , 10000 , " Multiplicity FT0M" };
254- AxisSpec multAxisZoom = {7000 , 3000 , 10000 , " Multiplicity FT0M" };
255- AxisSpec nTracksAxis = {100 , 0 ., 100 ., " NTracksGlobal" };
256263
257264 std::array<std::string, 7 > cutsNames{" # candidates" , " hasTOF" , " nClusTPC" , " nSigmaTPCbach" , " nSigmaTPCprotontrack" , " nSigmaTPCpiontrack" , " cosPA" };
258265 auto cutsOmega{std::get<std::shared_ptr<TH2>>(mRegistry .add (" h_PIDcutsOmega" , " ;;Invariant mass (GeV/#it{c}^{2})" , HistType::kTH2D , {{cutsNames.size (), -0.5 , -0.5 + cutsNames.size ()}, {125 , 1.650 , 1.700 }}))};
@@ -331,7 +338,22 @@ struct NonPromptCascadeTask {
331338 {
332339 // std::cout << "Filling mult histos" << std::endl;
333340 for (const auto & coll : collisions) {
334- // std::cout << coll.centFT0M() << " mult, cent " << coll.multNTracksGlobal() << std::endl;
341+ if (!mRuns .count (mRunNumber )) {
342+ std::string histName = " mult/hMultVsCent_run" + std::to_string (mRunNumber );
343+ mHistPointer1 = std::get<std::shared_ptr<TH2>>(mRegistry .add (histName.c_str (), histName.c_str (), HistType::kTH2F , {centAxis, multAxis}));
344+ histName = " mult/hMultVsCentZoom_run" + std::to_string (mRunNumber );
345+ mHistPointer2 = std::get<std::shared_ptr<TH2>>(mRegistry .add (histName.c_str (), histName.c_str (), HistType::kTH2F , {centAxisZoom, multAxisZoom}));
346+ histName = " mult/hNTracksVsCent_run" + std::to_string (mRunNumber );
347+ mHistPointer3 = std::get<std::shared_ptr<TH2>>(mRegistry .add (histName.c_str (), histName.c_str (), HistType::kTH2F , {centAxis, nTracksAxis}));
348+ histName = " mult/hNTracksVsCentZoom_run" + std::to_string (mRunNumber );
349+ mHistPointer4 = std::get<std::shared_ptr<TH2>>(mRegistry .add (histName.c_str (), histName.c_str (), HistType::kTH2F , {centAxisZoom, nTracksAxis}));
350+ mRuns .insert (mRunNumber );
351+ }
352+ mHistPointer1 ->Fill (coll.centFT0M (), coll.multFT0M ());
353+ mHistPointer2 ->Fill (coll.centFT0M (), coll.multFT0M ());
354+ mHistPointer3 ->Fill (coll.centFT0M (), coll.multNTracksGlobal ());
355+ mHistPointer4 ->Fill (coll.centFT0M (), coll.multNTracksGlobal ());
356+
335357 mRegistry .fill (HIST (" hMultVsCent" ), coll.centFT0M (), coll.multFT0M ());
336358 mRegistry .fill (HIST (" hMultVsCentZoom" ), coll.centFT0M (), coll.multFT0M ());
337359 mRegistry .fill (HIST (" hNTracksVsCent" ), coll.centFT0M (), (float )coll.multNTracksGlobal ());
@@ -548,7 +570,7 @@ struct NonPromptCascadeTask {
548570 if (mToiMap .count (bc.globalBC ())) {
549571 toiMask = mToiMap [bc.globalBC ()];
550572 }
551- candidates.emplace_back (NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId (), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0 ], fromHF[1 ],
573+ candidates.emplace_back (NPCascCandidate{mRunNumber , mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId (), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0 ], fromHF[1 ],
552574 collision.numContrib (), cascPVContribs, collision.collisionTimeRes (), primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ (),
553575 cascadeLvector.pt (), cascadeLvector.eta (), cascadeLvector.phi (),
554576 protonTrack.pt (), protonTrack.eta (), pionTrack.pt (), pionTrack.eta (), bachelor.pt (), bachelor.eta (),
@@ -558,15 +580,15 @@ struct NonPromptCascadeTask {
558580 cascITSclusters, protonTrack.itsNCls (), pionTrack.itsNCls (), bachelor.itsNCls (), protonTrack.tpcNClsFound (), pionTrack.tpcNClsFound (), bachelor.tpcNClsFound (),
559581 protonTrack.tpcNSigmaPr (), pionTrack.tpcNSigmaPi (), bachelor.tpcNSigmaKa (), bachelor.tpcNSigmaPi (),
560582 protonTrack.hasTOF (), pionTrack.hasTOF (), bachelor.hasTOF (),
561- protonTrack.tofNSigmaPr (), pionTrack.tofNSigmaPi (), bachelor.tofNSigmaKa (), bachelor.tofNSigmaPi (), collision.sel8 (), collision.multFT0C (), collision.multFT0A (), collision.multFT0M (), collision.centFT0C (), collision.centFT0A (), collision.centFT0M (), collision.multNTracksGlobal (), toiMask});
583+ protonTrack.tofNSigmaPr (), pionTrack.tofNSigmaPi (), bachelor.tofNSigmaKa (), bachelor.tofNSigmaPi (), collision.sel8 (), collision.multFT0C (), collision.multFT0A (), collision.multFT0M (), collision.centFT0C (), collision.centFT0A (), collision.centFT0M (), collision.multNTracksGlobal (), toiMask, collision. selection_bit (aod::evsel:: kNoSameBunchPileup ) });
562584 }
563585 }
564586
565587 template <typename CascadeType>
566588 void fillDataTable (auto const & candidates)
567589 {
568590 for (const auto & c : candidates) {
569- getDataTable<CascadeType>()(c.matchingChi2 , c.deltaPtITS , c.deltaPt , c.itsClusSize , c.hasReassociatedCluster ,
591+ getDataTable<CascadeType>()(mRunNumber , c.matchingChi2 , c.deltaPtITS , c.deltaPt , c.itsClusSize , c.hasReassociatedCluster ,
570592 c.pvContributors , c.cascPVContribs , c.pvTimeResolution , c.pvX , c.pvY , c.pvZ ,
571593 c.cascPt , c.cascEta , c.cascPhi ,
572594 c.protonPt , c.protonEta , c.pionPt , c.pionEta , c.bachPt , c.bachEta ,
@@ -578,7 +600,7 @@ struct NonPromptCascadeTask {
578600 c.protonTPCNSigma , c.pionTPCNSigma , c.bachKaonTPCNSigma , c.bachPionTPCNSigma ,
579601 c.protonHasTOF , c.pionHasTOF , c.bachHasTOF ,
580602 c.protonTOFNSigma , c.pionTOFNSigma , c.bachKaonTOFNSigma , c.bachPionTOFNSigma ,
581- c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M , c.multNTracksGlobal , c.toiMask );
603+ c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M , c.multNTracksGlobal , c.toiMask , c. noSameBunchPileup );
582604 }
583605 }
584606
@@ -606,7 +628,7 @@ struct NonPromptCascadeTask {
606628 auto mcCollision = particle.template mcCollision_as <aod::McCollisions>();
607629 auto recCollision = collisions.iteratorAt (c.collisionID );
608630
609- getMCtable<CascadeType>()(c.matchingChi2 , c.deltaPtITS , c.deltaPt , c.itsClusSize , c.hasReassociatedCluster , c.isGoodMatch , c.isGoodCascade , c.pdgCodeMom , c.pdgCodeITStrack , c.isFromBeauty , c.isFromCharm ,
631+ getMCtable<CascadeType>()(mRunNumber , c.matchingChi2 , c.deltaPtITS , c.deltaPt , c.itsClusSize , c.hasReassociatedCluster , c.isGoodMatch , c.isGoodCascade , c.pdgCodeMom , c.pdgCodeITStrack , c.isFromBeauty , c.isFromCharm ,
610632 c.pvContributors , c.cascPVContribs , c.pvTimeResolution , c.pvX , c.pvY , c.pvZ , c.cascPt , c.cascEta , c.cascPhi ,
611633 c.protonPt , c.protonEta , c.pionPt , c.pionEta , c.bachPt , c.bachEta ,
612634 c.cascDCAxy , c.cascDCAz , c.protonDCAxy , c.protonDCAz , c.pionDCAxy , c.pionDCAz , c.bachDCAxy , c.bachDCAz ,
@@ -617,7 +639,7 @@ struct NonPromptCascadeTask {
617639 c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M ,
618640 particle.pt (), particle.eta (), particle.phi (), mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
619641 particle.pdgCode (), mcCollision.posX () - particle.vx (), mcCollision.posY () - particle.vy (),
620- mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.multNTracksGlobal , c.toiMask );
642+ mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.multNTracksGlobal , c.toiMask , c. noSameBunchPileup );
621643 }
622644 }
623645
0 commit comments