@@ -125,6 +125,7 @@ struct NPCascCandidate {
125125 float centFT0C;
126126 float centFT0A;
127127 float centFT0M;
128+ int multNTracksGlobal;
128129 uint32_t toiMask;
129130};
130131std::array<bool , 2 > isFromHF (auto & particle)
@@ -174,12 +175,14 @@ struct NonPromptCascadeTask {
174175
175176 using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
176177 using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
177- using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>;
178- using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms>;
178+ using CollisionCandidatesRun3 = soa::Join<aod::Collisions, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::MultsGlobal >;
179+ using CollisionCandidatesRun3MC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::FT0Mults, aod::CentFT0Cs, aod::CentFT0As, aod::CentFT0Ms, aod::MultsGlobal >;
179180
180181 Preslice<TracksExtData> perCollision = aod::track::collisionId;
181182 Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
182183
184+ HistogramRegistry mRegistry ;
185+
183186 Configurable<std::string> ccdbUrl{" ccdbUrl" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
184187 Configurable<bool > cfgPropToPCA{" cfgPropToPCA" , true , " create tracks version propagated to PCA" };
185188 Configurable<bool > cfgRedoPV{" cfgRedoPV" , true , " redo PV" };
@@ -207,8 +210,6 @@ struct NonPromptCascadeTask {
207210 float mBz = 0 .f;
208211 o2::vertexing::DCAFitterN<2 > mDCAFitter ;
209212
210- HistogramRegistry mRegistry ;
211-
212213 void initCCDB (aod::BCsWithTimestamps::iterator const & bc)
213214 {
214215 if (mRunNumber == bc.runNumber ()) {
@@ -244,11 +245,17 @@ struct NonPromptCascadeTask {
244245 mDCAFitter .setUseAbsDCA (cfgUseAbsDCA);
245246
246247 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 };
247- AxisSpec ptAxis = {ptBinning, " #it{p}_{T} (GeV/#it{c})" };
248+ // AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"};
249+ AxisSpec centAxis = {101 , 0 ., 101 ., " Centrality" };
250+ AxisSpec centAxisZoom = {100 , 0 ., 1 ., " Centrality" };
251+ AxisSpec multAxis = {10000 , 0 , 10000 , " Multiplicity" };
252+ AxisSpec multAxisZoom = {1000 , 0 , 1000 , " Multiplicity" };
248253
249254 std::array<std::string, 7 > cutsNames{" # candidates" , " hasTOF" , " nClusTPC" , " nSigmaTPCbach" , " nSigmaTPCprotontrack" , " nSigmaTPCpiontrack" , " cosPA" };
250255 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 }}))};
251256 auto cutsXi{std::get<std::shared_ptr<TH2>>(mRegistry .add (" h_PIDcutsXi" , " ;;Invariant mass (GeV/#it{c}^{2})" , HistType::kTH2D , {{6 , -0.5 , 5.5 }, {125 , 1.296 , 1.346 }}))};
257+ mRegistry .add (" hMultVsCent" , " hMultVsCent" , HistType::kTH2F , {centAxis, multAxis});
258+ mRegistry .add (" hMultVsCentZoom" , " hMultVsCentZoom" , HistType::kTH2F , {centAxisZoom, multAxisZoom});
252259
253260 for (size_t iBin{0 }; iBin < cutsNames.size (); ++iBin) {
254261 cutsOmega->GetYaxis ()->SetBinLabel (iBin + 1 , cutsNames[iBin].c_str ());
@@ -314,6 +321,16 @@ struct NonPromptCascadeTask {
314321 }
315322 }
316323 }
324+ void fillMultHistos (const auto & collisions)
325+ {
326+ std::cout << " Filling mult histos" << std::endl;
327+ for (const auto & coll : collisions) {
328+ // std::cout << coll.centFT0M() << " mult, cent " << coll.multFT0M() << std::endl;
329+ mRegistry .fill (HIST (" hMultVsCent" ), coll.centFT0M (), coll.multFT0M ());
330+ mRegistry .fill (HIST (" hMultVsCentZoom" ), coll.centFT0M (), coll.multFT0M ());
331+ }
332+ };
333+
317334 template <typename TrackType, typename CollisionType>
318335 void fillCandidatesVector (CollisionType const &, TrackType const & tracks, auto const & cascades, auto & candidates, std::map<uint64_t , uint32_t > toiMap = {})
319336 {
@@ -533,7 +550,7 @@ struct NonPromptCascadeTask {
533550 cascITSclusters, protonTrack.itsNCls (), pionTrack.itsNCls (), bachelor.itsNCls (), protonTrack.tpcNClsFound (), pionTrack.tpcNClsFound (), bachelor.tpcNClsFound (),
534551 protonTrack.tpcNSigmaPr (), pionTrack.tpcNSigmaPi (), bachelor.tpcNSigmaKa (), bachelor.tpcNSigmaPi (),
535552 protonTrack.hasTOF (), pionTrack.hasTOF (), bachelor.hasTOF (),
536- protonTrack.tofNSigmaPr (), pionTrack.tofNSigmaPi (), bachelor.tofNSigmaKa (), bachelor.tofNSigmaPi (), collision.sel8 (), collision.multFT0C (), collision.multFT0A (), collision.multFT0M (), collision.centFT0C (), collision.centFT0A (), collision.centFT0M (), toiMask});
553+ 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});
537554 }
538555 }
539556
@@ -553,7 +570,7 @@ struct NonPromptCascadeTask {
553570 c.protonTPCNSigma , c.pionTPCNSigma , c.bachKaonTPCNSigma , c.bachPionTPCNSigma ,
554571 c.protonHasTOF , c.pionHasTOF , c.bachHasTOF ,
555572 c.protonTOFNSigma , c.pionTOFNSigma , c.bachKaonTOFNSigma , c.bachPionTOFNSigma ,
556- c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M , c.toiMask );
573+ c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M , c.multNTracksGlobal , c. toiMask );
557574 }
558575 }
559576
@@ -592,7 +609,7 @@ struct NonPromptCascadeTask {
592609 c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M ,
593610 particle.pt (), particle.eta (), particle.phi (), mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
594611 particle.pdgCode (), mcCollision.posX () - particle.vx (), mcCollision.posY () - particle.vy (),
595- mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.toiMask );
612+ mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.multNTracksGlobal , c. toiMask );
596613 }
597614 }
598615
@@ -669,6 +686,7 @@ struct NonPromptCascadeTask {
669686 aod::V0s const & /* v0s*/ , TracksExtData const & tracks,
670687 aod::BCsWithTimestamps const &)
671688 {
689+ fillMultHistos (collisions);
672690 std::map<uint64_t , uint32_t > toiMap;
673691 zorroAccounting (collisions, toiMap);
674692 fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates , toiMap);
0 commit comments