@@ -107,8 +107,8 @@ struct heptaquarktable {
107107 Filter acceptanceFilter = (nabs(aod::track::eta) < cfgCutEta && nabs(aod::track::pt) > cfgCutPt);
108108 Filter DCAcutFilter = (nabs(aod::track::dcaXY) < cfgCutDCAxy) && (nabs(aod::track::dcaZ) < cfgCutDCAz);
109109
110- using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults>>;
111- using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr>>;
110+ using EventCandidates = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0Cs >>;
111+ using TrackCandidates = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr >>;
112112
113113 HistogramRegistry histos{
114114 " histos" ,
@@ -124,9 +124,11 @@ struct heptaquarktable {
124124 double massPi = o2::constants::physics::MassPionCharged;
125125 double massKa = o2::constants::physics::MassKPlus;
126126
127+ float centrality;
128+
127129 void init (o2::framework::InitContext&)
128130 {
129- histos.add (" hEventstat" , " " , {HistType::kTH1F , {{2 , 0 , 2 }}});
131+ histos.add (" hEventstat" , " " , {HistType::kTH1F , {{3 , 0 , 3 }}});
130132 }
131133
132134 template <typename T>
@@ -230,6 +232,7 @@ struct heptaquarktable {
230232 int numberLambda = 0 ;
231233 auto currentRunNumber = collision.bc_as <aod::BCsWithTimestamps>().runNumber ();
232234 auto bc = collision.bc_as <aod::BCsWithTimestamps>();
235+ centrality = collision.centFT0M ();
233236
234237 std::vector<int > HQId = {};
235238
@@ -242,10 +245,18 @@ struct heptaquarktable {
242245 std::vector<float > HQd1TPC = {};
243246 std::vector<float > HQd2TPC = {};
244247
248+ std::vector<int > HQd1TOFHit = {};
249+ std::vector<int > HQd2TOFHit = {};
250+
251+ std::vector<float > HQd1TOF = {};
252+ std::vector<float > HQd2TOF = {};
253+
245254 std::vector<ROOT::Math::PtEtaPhiMVector> hqresonance, hqresonanced1, hqresonanced2;
246255
256+ histos.fill (HIST (" hEventstat" ), 0.5 );
247257 if (!(collision.sel8 () && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ) && collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && collision.selection_bit (aod::evsel::kNoSameBunchPileup ) && collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )))
248258 return ;
259+ histos.fill (HIST (" hEventstat" ), 1.5 );
249260
250261 auto posThisColl = posTracks->sliceByCached (aod::track::collisionId, collision.globalIndex (), cache);
251262 auto negThisColl = negTracks->sliceByCached (aod::track::collisionId, collision.globalIndex (), cache);
@@ -308,6 +319,26 @@ struct heptaquarktable {
308319
309320 HQd1TPC.push_back (track1.tpcNSigmaKa ());
310321 HQd2TPC.push_back (track2.tpcNSigmaKa ());
322+
323+ auto d1TOFHit = -1 ;
324+ auto d2TOFHit = -1 ;
325+ auto d1TOF = -999.0 ;
326+ auto d2TOF = -999.0 ;
327+
328+ if (track1.hasTOF ()) {
329+ d1TOFHit = 1 ;
330+ d1TOF = track1.tofNSigmaKa ();
331+ }
332+ if (track2.hasTOF ()) {
333+ d2TOFHit = 1 ;
334+ d2TOF = track2.tofNSigmaKa ();
335+ }
336+
337+ HQd1TOFHit.push_back (d1TOFHit);
338+ HQd2TOFHit.push_back (d2TOFHit);
339+
340+ HQd1TOF.push_back (d1TOF);
341+ HQd2TOF.push_back (d2TOF);
311342 }
312343 }
313344 for (auto & v0 : V0s) {
@@ -363,19 +394,42 @@ struct heptaquarktable {
363394 HQd1Charge.push_back (postrack_v0.sign ());
364395 HQd2Charge.push_back (negtrack_v0.sign ());
365396
366- HQd1TPC.push_back (postrack_v0.tpcNSigmaKa ());
367- HQd2TPC.push_back (negtrack_v0.tpcNSigmaKa ());
397+ if (LambdaTag) {
398+ HQd1TPC.push_back (postrack_v0.tpcNSigmaPr ());
399+ HQd2TPC.push_back (negtrack_v0.tpcNSigmaPi ());
400+ } else if (aLambdaTag) {
401+ HQd1TPC.push_back (postrack_v0.tpcNSigmaPi ());
402+ HQd2TPC.push_back (negtrack_v0.tpcNSigmaPr ());
403+ }
404+
405+ auto d1TOFHit = -1 ;
406+ auto d2TOFHit = -1 ;
407+ auto d1TOF = -999.0 ;
408+ auto d2TOF = -999.0 ;
409+
410+ if (postrack_v0.hasTOF ()) {
411+ d1TOFHit = 1 ;
412+ d1TOF = postrack_v0.tofNSigmaPr ();
413+ }
414+ if (negtrack_v0.hasTOF ()) {
415+ d2TOFHit = 1 ;
416+ d2TOF = negtrack_v0.tofNSigmaPr ();
417+ } // //// TOF with PV assumption to be corrected
418+ HQd1TOFHit.push_back (d1TOFHit);
419+ HQd2TOFHit.push_back (d2TOFHit);
420+
421+ HQd1TOF.push_back (d1TOF);
422+ HQd2TOF.push_back (d2TOF);
368423 } // select collision
369424 if (numberPhi < 2 || numberLambda < 1 )
370425 return ;
371426
372427 keepEventDoubleHQ = true ;
373428
374- histos.fill (HIST (" hEventstat" ), 0.5 );
375429 if (keepEventDoubleHQ && numberPhi > 1 && numberLambda > 0 && (hqresonance.size () == hqresonanced1.size ()) && (hqresonance.size () == hqresonanced2.size ())) {
376- histos.fill (HIST (" hEventstat" ), 1 .5 );
430+ histos.fill (HIST (" hEventstat" ), 2 .5 );
377431 // ///////// Fill collision table///////////////
378- redHQEvents (bc.globalBC (), currentRunNumber, bc.timestamp (), collision.posZ (), collision.numContrib (), numberPhi, numberLambda);
432+ redHQEvents (bc.globalBC (), currentRunNumber, bc.timestamp (), collision.posZ (), collision.numContrib (), centrality, numberPhi, numberLambda);
379433 auto indexEvent = redHQEvents.lastIndex ();
380434 // // Fill track table for HQ//////////////////
381435 for (auto if1 = hqresonance.begin (); if1 != hqresonance.end (); ++if1) {
@@ -387,8 +441,8 @@ struct heptaquarktable {
387441 HQd1dummy.Px (), HQd1dummy.Py (), HQd1dummy.Pz (), HQd2dummy.Px (), HQd2dummy.Py (), HQd2dummy.Pz (),
388442 HQVectorDummy.M (),
389443 HQd1Index.at (i5), HQd2Index.at (i5),
390- HQd1Charge.at (i5), HQd2Charge.at (i5),
391- HQd1TPC .at (i5), HQd2TPC .at (i5));
444+ HQd1Charge.at (i5), HQd2Charge.at (i5), HQd1TPC. at (i5), HQd2TPC. at (i5),
445+ HQd1TOFHit .at (i5), HQd2TOFHit. at (i5), HQd1TOF. at (i5), HQd2TOF .at (i5));
392446 }
393447 }
394448 } // process
0 commit comments