@@ -469,6 +469,18 @@ class pidTPCModule
469469 {" 3" , 8 , 3 },
470470 {" 4" , 9 , 4 }}};
471471
472+ enum IndexNnFeature : int {
473+ IdxTpcInnerParam = 0 ,
474+ IdxTgl,
475+ IdxSigned1Pt,
476+ IdxMass,
477+ IdxMultiplicity,
478+ IdxNClusters,
479+ IdxFt0cOcc,
480+ IdxHadronicRate,
481+ IdxModPhi
482+ };
483+
472484 std::vector<float > networkPrediction;
473485
474486 const auto startNetworkTotal = std::chrono::high_resolution_clock::now ();
@@ -586,50 +598,50 @@ class pidTPCModule
586598 continue ;
587599 }
588600 }
589- trackProperties[counterTrackProps] = trk.tpcInnerParam ();
590- trackProperties[counterTrackProps + 1 ] = trk.tgl ();
591- trackProperties[counterTrackProps + 2 ] = trk.signed1Pt ();
592- trackProperties[counterTrackProps + 3 ] = o2::track::pid_constants::sMasses [j];
593- trackProperties[counterTrackProps + 4 ] = (trk.has_collision () && mults.size () > 0 ) ? mults[trk.collisionId ()] / MultiplicityNorm : 1 .;
594- trackProperties[counterTrackProps + 5 ] = std::sqrt (nNclNormalization / trk.tpcNClsFound ());
601+ trackProperties[counterTrackProps + IdxTpcInnerParam ] = trk.tpcInnerParam ();
602+ trackProperties[counterTrackProps + IdxTgl ] = trk.tgl ();
603+ trackProperties[counterTrackProps + IdxSigned1Pt ] = trk.signed1Pt ();
604+ trackProperties[counterTrackProps + IdxMass ] = o2::track::pid_constants::sMasses [j];
605+ trackProperties[counterTrackProps + IdxMultiplicity ] = (trk.has_collision () && mults.size () > 0 ) ? mults[trk.collisionId ()] / MultiplicityNorm : 1 .;
606+ trackProperties[counterTrackProps + IdxNClusters ] = std::sqrt (nNclNormalization / trk.tpcNClsFound ());
595607 if (inputDimensions == ExpectedInputDimensionsNNV2 && networkVersion == NetworkVersionV2) {
596- trackProperties[counterTrackProps + 6 ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
608+ trackProperties[counterTrackProps + IdxFt0cOcc ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
597609 }
598610 if (inputDimensions == ExpectedInputDimensionsNNV3 && networkVersion == NetworkVersionV3) {
599- trackProperties[counterTrackProps + 6 ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
611+ trackProperties[counterTrackProps + IdxFt0cOcc ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
600612 if (trk.has_collision () && mults.size () > 0 ) {
601613 if (collsys == CollisionSystemType::kCollSyspp ) {
602- trackProperties[counterTrackProps + 7 ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormPp;
614+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormPp;
603615 } else {
604- trackProperties[counterTrackProps + 7 ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormAa;
616+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormAa;
605617 }
606618 } else {
607619 // asign Hadronic Rate at beginning of run if track does not belong to a collision
608620 if (collsys == CollisionSystemType::kCollSyspp ) {
609- trackProperties[counterTrackProps + 7 ] = hadronicRateBegin / HadronicRateNormPp;
621+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateBegin / HadronicRateNormPp;
610622 } else {
611- trackProperties[counterTrackProps + 7 ] = hadronicRateBegin / HadronicRateNormAa;
623+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateBegin / HadronicRateNormAa;
612624 }
613625 }
614626 }
615627
616628 if (inputDimensions == ExpectedInputDimensionsNNV4 && networkVersion == NetworkVersionV4) {
617- trackProperties[counterTrackProps + 6 ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
629+ trackProperties[counterTrackProps + IdxFt0cOcc ] = (trk.has_collision () && mults.size () > 0 ) ? collisions.iteratorAt (trk.collisionId ()).ft0cOccupancyInTimeRange () / Ft0cOccupancyNorm : 1 .;
618630 if (trk.has_collision () && mults.size () > 0 ) {
619631 if (collsys == CollisionSystemType::kCollSyspp ) {
620- trackProperties[counterTrackProps + 7 ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormPp;
632+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormPp;
621633 } else {
622- trackProperties[counterTrackProps + 7 ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormAa;
634+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateForCollision[trk.collisionId ()] / HadronicRateNormAa;
623635 }
624636 } else {
625637 // asign Hadronic Rate at beginning of run if track does not belong to a collision
626638 if (collsys == CollisionSystemType::kCollSyspp ) {
627- trackProperties[counterTrackProps + 7 ] = hadronicRateBegin / HadronicRateNormPp;
639+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateBegin / HadronicRateNormPp;
628640 } else {
629- trackProperties[counterTrackProps + 7 ] = hadronicRateBegin / HadronicRateNormAa;
641+ trackProperties[counterTrackProps + IdxHadronicRate ] = hadronicRateBegin / HadronicRateNormAa;
630642 }
631643 }
632- trackProperties[counterTrackProps + 8 ] = std::fmod (std::fmod (trk.phi (), o2::constants::math::TwoPI) + o2::constants::math::TwoPI, o2::constants::math::TwoPI / NumberOfTpcSectors);
644+ trackProperties[counterTrackProps + IdxModPhi ] = std::fmod (std::fmod (trk.phi (), o2::constants::math::TwoPI) + o2::constants::math::TwoPI, o2::constants::math::TwoPI / NumberOfTpcSectors);
633645 }
634646 counterTrackProps += inputDimensions;
635647 }
0 commit comments