@@ -150,13 +150,13 @@ constexpr std::array<std::array<double, 6>, static_cast<int>(Species::kAllSpecie
150150 {-1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 }, // He3
151151 {-1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 } // hadron
152152}};
153- static const std::vector<std::string> kItsParNames {" p0" , " p1" , " p2" , " res0" , " res1" , " res2" };
153+ const std::vector<std::string> kItsParNames {" p0" , " p1" , " p2" , " res0" , " res1" , " res2" };
154154
155155constexpr std::array<std::array<double , 6 >, 1 > kBetheBlochDefault = {{{-1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 , -1 .e32 }}};
156- static const std::vector<std::string> kBetheBlochParNames {" p0" , " p1" , " p2" , " p3" , " p4" , " resolution" };
156+ const std::vector<std::string> kBetheBlochParNames {" p0" , " p1" , " p2" , " p3" , " p4" , " resolution" };
157157
158158constexpr std::array<std::array<double , 6 >, 1 > kBetheBlochCorrectionDefault = {{{0.0 , -1 .e32 , -1 .e32 , 0.0 , -1 .e32 , -1 .e32 }}};
159- static const std::vector<std::string> kBetheBlochCorrectionParNames {" p0" , " p1" , " p2" , " p3" , " p4" , " p5" };
159+ const std::vector<std::string> kBetheBlochCorrectionParNames {" p0" , " p1" , " p2" , " p3" , " p4" , " p5" };
160160
161161constexpr std::array<std::array<double , 4 >, static_cast <int >(Species::kAllSpecies )> kDCAxyResDefault = {{
162162 {1.09e-4 , 0.0011 , 0.0065 , 1.0399 }, // He3
@@ -166,7 +166,7 @@ constexpr std::array<std::array<double, 4>, static_cast<int>(Species::kAllSpecie
166166 {9.36e-5 , 0.0019 , 0.0080 , 1.416 }, // He3
167167 {1.18e-4 , 0.0020 , 0.0025 , 1.3460 } // Pr
168168}};
169- static const std::vector<std::string> kDCAResParNames {" res0" , " res1" , " res2" , " mean" };
169+ const std::vector<std::string> kDCAResParNames {" res0" , " res1" , " res2" , " mean" };
170170
171171constexpr std::array<double , 3 > kHePidTrkPtParamsHeDefault = {0.3101 , -0.1759 , 0.0262 };
172172constexpr std::array<double , 3 > kHePidTrkPParamsHeDefault = {0 ., 0 ., 0 .};
@@ -175,12 +175,14 @@ constexpr std::array<double, 3> kHePidTrkPParamsHeDefault = {0., 0., 0.};
175175
176176struct He3HadCandidate {
177177
178- float recoPtHe3 () const { return signHe3 * std::hypot (momHe3[0 ], momHe3[1 ]); }
179- float recoPhiHe3 () const { return std::atan2 (momHe3[1 ], momHe3[0 ]); }
180- float recoEtaHe3 () const { return std::asinh (momHe3[2 ] / std::abs (recoPtHe3 ())); }
181- float recoPtHad () const { return signHad * std::hypot (momHad[0 ], momHad[1 ]); }
182- float recoPhiHad () const { return std::atan2 (momHad[1 ], momHad[0 ]); }
183- float recoEtaHad () const { return std::asinh (momHad[2 ] / std::abs (recoPtHad ())); }
178+ [[nodiscard]] float recoPtHe3 () const { return signHe3 * std::hypot (momHe3[0 ], momHe3[1 ]); }
179+ [[nodiscard]] float recoPhiHe3 () const { return std::atan2 (momHe3[1 ], momHe3[0 ]); }
180+ [[nodiscard]] float recoEtaHe3 () const { return std::asinh (momHe3[2 ] / std::abs (recoPtHe3 ())); }
181+ [[nodiscard]] float recoPtHad () const { return signHad * std::hypot (momHad[0 ], momHad[1 ]); }
182+ [[nodiscard]] float recoPhiHad () const { return std::atan2 (momHad[1 ], momHad[0 ]); }
183+ [[nodiscard]] float recoEtaHad () const { return std::asinh (momHad[2 ] / std::abs (recoPtHad ())); }
184+ [[nodiscard]] float recoKstar () const { return getkstar (recoPtHe3 (), recoEtaHe3 (), recoPhiHe3 (), constants::physics::MassHelium3, 1 .f ,
185+ recoPtHad (), recoEtaHad (), recoPhiHad (), constants::physics::MassProton, 1 .f ); }
184186
185187 std::array<float , 3 > momHe3 = {99 .f , 99 .f , 99 .f };
186188 std::array<float , 3 > momHad = {99 .f , 99 .f , 99 .f };
@@ -335,13 +337,13 @@ struct he3HadronFemto {
335337 SameKindPair<CollisionsFull, TrackCandidates, BinningType> mPair {binningPolicy, settingNoMixedEvents, -1 , &cache};
336338
337339 struct He3HadronParams {
338- std::array<float , 6 > betheBlochParams = { 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f };
339- std::array<float , 6 > betheBlochCorrectionParams = { 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f , 0 . 0f };
340- std::array<std::array<float , 6 >, static_cast <int >(Species::kAllSpecies )> itsParams;
341- std::array<std::array<float , 4 >, static_cast <int >(Species::kAllSpecies )> dcaxyResParams;
342- std::array<std::array<float , 4 >, static_cast <int >(Species::kAllSpecies )> dcazResParams;
343- std::array<float , 3 > hePidTrkPtParams = { 0 . 0f , 0 . 0f , 0 . 0f };
344- std::array<float , 3 > hePidTrkPParams = { 0 . 0f , 0 . 0f , 0 . 0f };
340+ std::array<float , 6 > betheBlochParams{ };
341+ std::array<float , 6 > betheBlochCorrectionParams{ };
342+ std::array<std::array<float , 6 >, static_cast <int >(Species::kAllSpecies )> itsParams{} ;
343+ std::array<std::array<float , 4 >, static_cast <int >(Species::kAllSpecies )> dcaxyResParams{} ;
344+ std::array<std::array<float , 4 >, static_cast <int >(Species::kAllSpecies )> dcazResParams{} ;
345+ std::array<float , 3 > hePidTrkPtParams{ };
346+ std::array<float , 3 > hePidTrkPParams{ };
345347 } mHe3HadronParams ;
346348
347349 o2::aod::ITSResponse mResponseITS ;
@@ -497,8 +499,8 @@ struct he3HadronFemto {
497499 mRunNumber = bc.runNumber ();
498500 const float defaultBzValue = -999 .0f ;
499501 auto run3GrpTimestamp = bc.timestamp ();
500- o2::parameters::GRPObject* grpo = mCcdb ->getForTimeStamp <o2::parameters::GRPObject>(settingGrpPath, run3GrpTimestamp);
501- o2::parameters::GRPMagField* grpmag = 0x0 ;
502+ auto grpo = mCcdb ->getForTimeStamp <o2::parameters::GRPObject>(settingGrpPath, run3GrpTimestamp);
503+ o2::parameters::GRPMagField* grpmag = nullptr ;
502504 if (grpo) {
503505 o2::base::Propagator::initFieldFromGRP (grpo);
504506 if (settingDbz < defaultBzValue) {
@@ -575,8 +577,9 @@ struct he3HadronFemto {
575577
576578 float correctPtHe3TrackedAsTriton (const float pt, const uint32_t pidForTracking)
577579 {
578- if (pt < 2.5 && pidForTracking == o2::track::PID ::Triton)
580+ if (pt < 2.5 && pidForTracking == o2::track::PID ::Triton) {
579581 return pt * (1 . - mHe3HadronParams .hePidTrkPtParams [0 ] - mHe3HadronParams .hePidTrkPtParams [1 ] * pt - mHe3HadronParams .hePidTrkPtParams [2 ] * pt * pt);
582+ }
580583
581584 return pt;
582585 }
@@ -587,16 +590,17 @@ struct he3HadronFemto {
587590 float correctedTPCinnerParam = (heliumPID && settingCompensatePIDinTracking) ? tpcInnerParam / 2 .f : tpcInnerParam;
588591
589592 correctedTPCinnerParam *= 2 .f ; // rigidity to momentum
590- if (correctedTPCinnerParam < 2.5 && pidForTracking == o2::track::PID ::Triton)
593+ if (correctedTPCinnerParam < 2.5 && pidForTracking == o2::track::PID ::Triton) {
591594 return correctedTPCinnerParam * (1 . - mHe3HadronParams .hePidTrkPParams [0 ] - mHe3HadronParams .hePidTrkPParams [1 ] * correctedTPCinnerParam - mHe3HadronParams .hePidTrkPParams [2 ] * correctedTPCinnerParam * correctedTPCinnerParam);
595+ }
592596
593597 return correctedTPCinnerParam;
594598 }
595599
596600 float computeNsigmaDCA (const float pt, const float dca, const int iSpecies, const char * dcaType = " xy" )
597601 {
598602
599- std::array<float , 4 > parameters;
603+ std::array<float , 4 > parameters{{ 0 ., 0 ., 0 ., 0 .}} ;
600604 if (std::strcmp (dcaType, " xy" ) == 0 ) {
601605 parameters = mHe3HadronParams .dcaxyResParams [iSpecies];
602606 } else if (std::strcmp (dcaType, " z" ) == 0 ) {
@@ -616,8 +620,9 @@ struct he3HadronFemto {
616620 const float nsigmaDcaZ = computeNsigmaDCA (pt, dcaZ, ispecies, " z" );
617621
618622 if (std::abs (nsigmaDcaXy) > cutSettings.settingCutNsigmaDcaXy ||
619- std::abs (nsigmaDcaZ) > cutSettings.settingCutNsigmaDcaZ )
623+ std::abs (nsigmaDcaZ) > cutSettings.settingCutNsigmaDcaZ ) {
620624 return false ;
625+ }
621626
622627 return true ;
623628 }
@@ -787,8 +792,9 @@ struct he3HadronFemto {
787792 std::array<float , 3 > collisionVertex = getCollisionVertex (collisions, he3Hadcand.collisionID );
788793
789794 he3Hadcand.momHe3 = std::array{trackHe3.px (), trackHe3.py (), trackHe3.pz ()};
790- for (int i = 0 ; i < 3 ; i++)
795+ for (int i = 0 ; i < 3 ; i++) {
791796 he3Hadcand.momHe3 [i] = he3Hadcand.momHe3 [i] * 2 ;
797+ }
792798 he3Hadcand.momHad = std::array{trackHad.px (), trackHad.py (), trackHad.pz ()};
793799 float invMass = CommonInite;
794800 if (settingHadPDGCode == PDG_t::kPiPlus ) {
@@ -817,7 +823,7 @@ struct he3HadronFemto {
817823 } else {
818824 auto trackCovHe3 = getTrackParCov (trackHe3);
819825 auto trackCovHad = getTrackParCov (trackHad);
820- std::array<float , 2 > dcaInfo;
826+ std::array<float , 2 > dcaInfo{{- 999 ., - 999 .}} ;
821827 o2::base::Propagator::Instance ()->propagateToDCABxByBz ({collisionVertex[0 ], collisionVertex[1 ], collisionVertex[2 ]}, trackCovHe3, 2 .f , mFitter .getMatCorrType (), &dcaInfo);
822828 he3Hadcand.dcaxyHe3 = dcaInfo[0 ];
823829 he3Hadcand.dcazHe3 = dcaInfo[1 ];
@@ -1009,6 +1015,7 @@ struct he3HadronFemto {
10091015 mQaRegistry .fill (HIST (" He3/hHe3Pt" ), he3Hadcand.recoPtHe3 ());
10101016 mQaRegistry .fill (HIST (" Had/hHadronPt" ), he3Hadcand.recoPtHad ());
10111017 mQaRegistry .fill (HIST (" hhe3HadtInvMass" ), he3Hadcand.invMass );
1018+ mQaRegistry .fill (HIST (" hhe3HadKstar" ), he3Hadcand.recoKstar ());
10121019 mQaRegistry .fill (HIST (" He3/hDCAxyHe3" ), he3Hadcand.dcaxyHe3 );
10131020 mQaRegistry .fill (HIST (" He3/hDCAzHe3" ), he3Hadcand.dcazHe3 );
10141021 mQaRegistry .fill (HIST (" Had/hDCAxyHad" ), he3Hadcand.dcaxyHad );
@@ -1167,7 +1174,7 @@ struct he3HadronFemto {
11671174
11681175 pairTracksSameEvent (trackTableThisCollision, collision);
11691176
1170- if (mTrackPairs .size () == 0 ) {
1177+ if (mTrackPairs .empty () ) {
11711178 continue ;
11721179 }
11731180
@@ -1248,14 +1255,14 @@ struct he3HadronFemto {
12481255 he3Hadcand.flags |= Flags::kBothPrimaries ;
12491256 isMixedPair = false ;
12501257
1251- } else if ((he3Hadcand.flagsHe3 & ParticleFlags::kFromLi4 ) && (he3Hadcand.flagsHad & ParticleFlags::kFromLi4 )) {
1258+ } else if (static_cast < bool > (he3Hadcand.flagsHe3 & ParticleFlags::kFromLi4 ) && static_cast < bool > (he3Hadcand.flagsHad & ParticleFlags::kFromLi4 )) {
12521259
12531260 searchForCommonMotherTrack (motherHe3Idxs, motherHadIdxs, mcParticles, motherParticle, he3Hadcand, isMixedPair, Li4PDG);
12541261 if (!isMixedPair) {
12551262 he3Hadcand.flags |= Flags::kBothFromLi4 ;
12561263 }
12571264
1258- } else if ((he3Hadcand.flagsHe3 & ParticleFlags::kFromHypertriton ) && (he3Hadcand.flagsHad & ParticleFlags::kFromHypertriton )) {
1265+ } else if (static_cast < bool > (he3Hadcand.flagsHe3 & ParticleFlags::kFromHypertriton ) && static_cast < bool > (he3Hadcand.flagsHad & ParticleFlags::kFromHypertriton )) {
12591266
12601267 searchForCommonMotherTrack (motherHe3Idxs, motherHadIdxs, mcParticles, motherParticle, he3Hadcand, isMixedPair, H3LPDG );
12611268 if (!isMixedPair) {
@@ -1306,8 +1313,9 @@ struct he3HadronFemto {
13061313
13071314 for (const auto & track : tracks) {
13081315
1309- if (!selectTrack (track, Species::kHad ))
1316+ if (!selectTrack (track, Species::kHad )) {
13101317 continue ;
1318+ }
13111319
13121320 const float itsNSigmaHad = settingHadPDGCode == PDG_t::kProton ? mResponseITS .nSigmaITS <o2::track::PID ::Proton>(track.itsClusterSizes (), track.p (), track.eta ()) : mResponseITS .nSigmaITS <o2::track::PID ::Pion>(track.itsClusterSizes (), track.p (), track.eta ());
13131321 mQaRegistry .fill (HIST (" Had/h2NsigmaHadronITS_preselection" ), track.sign () * track.pt (), itsNSigmaHad, collision.centFT0C ());
@@ -1332,8 +1340,9 @@ struct he3HadronFemto {
13321340 const float itsNSigmaHe3 = mResponseITS .nSigmaITS <o2::track::PID ::Helium3>(track.itsClusterSizes (), 2 * track.p (), track.eta ());
13331341 mQaRegistry .fill (HIST (" He3/h2NsigmaHe3ITS_preselection" ), ptHe3Corrected, itsNSigmaHe3, collision.centFT0C ());
13341342
1335- if (!selectTrack (track, Species::kHe3 ) || !selectDcaNsigmaCut (ptHe3Corrected, track.dcaXY (), track.dcaZ (), Species::kHe3 ) || (itsNSigmaHe3 < cutSettings.settingCutNsigmaITSHe3 ))
1343+ if (!selectTrack (track, Species::kHe3 ) || !selectDcaNsigmaCut (ptHe3Corrected, track.dcaXY (), track.dcaZ (), Species::kHe3 ) || (itsNSigmaHe3 < cutSettings.settingCutNsigmaITSHe3 )) {
13361344 continue ;
1345+ }
13371346
13381347 mQaRegistry .fill (HIST (" He3/hHe3Pt" ), track.sign () * ptHe3Corrected);
13391348 mQaRegistry .fill (HIST (" He3/hDCAxyHe3" ), track.dcaXY ());
@@ -1353,17 +1362,20 @@ struct he3HadronFemto {
13531362
13541363 void processPurityMc (const CollisionsFullMC::iterator& collision, const TrackCandidatesMC& tracks, const aod::BCsWithTimestamps& bcs, const aod::McParticles& /* mcParticles*/ , const aod::McTrackLabels& /* mcTrackLabels*/ )
13551364 {
1356- if (!selectCollision</* isMC*/ false >(collision, bcs))
1365+ if (!selectCollision</* isMC*/ false >(collision, bcs)) {
13571366 return ;
1367+ }
13581368
13591369 for (const auto & track : tracks) {
13601370
1361- if (!track.has_mcParticle ())
1371+ if (!track.has_mcParticle ()) {
13621372 continue ;
1373+ }
13631374 const auto & particle = track.mcParticle_as <aod::McParticles>();
13641375
1365- if (!selectTrack (track, Species::kHad ))
1376+ if (!selectTrack (track, Species::kHad )) {
13661377 continue ;
1378+ }
13671379
13681380 if (selectDcaNsigmaCut (track.pt (), track.dcaXY (), track.dcaZ (), Species::kHad )) {
13691381 mQaRegistry .fill (HIST (" Had/hHadronPt" ), track.pt ());
@@ -1390,8 +1402,9 @@ struct he3HadronFemto {
13901402 }
13911403
13921404 const float ptHe3Corrected = correctPtHe3TrackedAsTriton (track.pt (), track.pidForTracking ());
1393- if (!selectTrack (track, Species::kHe3 ) || !selectDcaNsigmaCut (ptHe3Corrected, track.dcaXY (), track.dcaZ (), Species::kHe3 ))
1405+ if (!selectTrack (track, Species::kHe3 ) || !selectDcaNsigmaCut (ptHe3Corrected, track.dcaXY (), track.dcaZ (), Species::kHe3 )) {
13941406 continue ;
1407+ }
13951408
13961409 mQaRegistry .fill (HIST (" He3/hHe3Pt" ), ptHe3Corrected);
13971410 mQaRegistry .fill (HIST (" He3/hDCAxyHe3" ), track.dcaXY ());
0 commit comments