@@ -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 ());
@@ -300,6 +307,7 @@ struct NonPromptCascadeTask {
300307 LOG (fatal) << " N TOIs:" << mZorro .getNTOIs () << " Max 32 TOIs possible." ;
301308 }
302309 mZorro .populateHistRegistry (mRegistry , bc.runNumber ());
310+ mZorro .getZorroSummary ()->printTOInames ();
303311 runNumber = bc.runNumber ();
304312 }
305313 bool sel = mZorro .isSelected (bc.globalBC ()); // / Just let Zorro do the accounting
@@ -314,6 +322,16 @@ struct NonPromptCascadeTask {
314322 }
315323 }
316324 }
325+ void fillMultHistos (const auto & collisions)
326+ {
327+ std::cout << " Filling mult histos" << std::endl;
328+ for (const auto & coll : collisions) {
329+ // std::cout << coll.centFT0M() << " mult, cent " << coll.multFT0M() << std::endl;
330+ mRegistry .fill (HIST (" hMultVsCent" ), coll.centFT0M (), coll.multFT0M ());
331+ mRegistry .fill (HIST (" hMultVsCentZoom" ), coll.centFT0M (), coll.multFT0M ());
332+ }
333+ };
334+
317335 template <typename TrackType, typename CollisionType>
318336 void fillCandidatesVector (CollisionType const &, TrackType const & tracks, auto const & cascades, auto & candidates, std::map<uint64_t , uint32_t > toiMap = {})
319337 {
@@ -533,7 +551,7 @@ struct NonPromptCascadeTask {
533551 cascITSclusters, protonTrack.itsNCls (), pionTrack.itsNCls (), bachelor.itsNCls (), protonTrack.tpcNClsFound (), pionTrack.tpcNClsFound (), bachelor.tpcNClsFound (),
534552 protonTrack.tpcNSigmaPr (), pionTrack.tpcNSigmaPi (), bachelor.tpcNSigmaKa (), bachelor.tpcNSigmaPi (),
535553 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});
554+ 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});
537555 }
538556 }
539557
@@ -553,7 +571,7 @@ struct NonPromptCascadeTask {
553571 c.protonTPCNSigma , c.pionTPCNSigma , c.bachKaonTPCNSigma , c.bachPionTPCNSigma ,
554572 c.protonHasTOF , c.pionHasTOF , c.bachHasTOF ,
555573 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 );
574+ c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M , c.multNTracksGlobal , c. toiMask );
557575 }
558576 }
559577
@@ -592,7 +610,7 @@ struct NonPromptCascadeTask {
592610 c.sel8 , c.multFT0C , c.multFT0A , c.multFT0M , c.centFT0C , c.centFT0A , c.centFT0M ,
593611 particle.pt (), particle.eta (), particle.phi (), mcCollision.posX (), mcCollision.posY (), mcCollision.posZ (),
594612 particle.pdgCode (), mcCollision.posX () - particle.vx (), mcCollision.posY () - particle.vy (),
595- mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.toiMask );
613+ mcCollision.posZ () - particle.vz (), mcCollision.globalIndex () == recCollision.mcCollisionId (), c.hasFakeReassociation , motherDecayDaughters, c.multNTracksGlobal , c. toiMask );
596614 }
597615 }
598616
@@ -669,6 +687,7 @@ struct NonPromptCascadeTask {
669687 aod::V0s const & /* v0s*/ , TracksExtData const & tracks,
670688 aod::BCsWithTimestamps const &)
671689 {
690+ fillMultHistos (collisions);
672691 std::map<uint64_t , uint32_t > toiMap;
673692 zorroAccounting (collisions, toiMap);
674693 fillCandidatesVector<TracksExtData>(collisions, tracks, trackedCascades, gCandidates , toiMap);
0 commit comments