@@ -356,11 +356,11 @@ struct femtoDreamProducerTask {
356356 }
357357 }
358358
359- template <bool isTrackOrV0, bool isV0Daughter , typename ParticleType>
359+ template <bool isTrackOrV0, bool hasItsPid , typename ParticleType>
360360 void fillDebugParticle (ParticleType const & particle)
361361 {
362362 if constexpr (isTrackOrV0) {
363- if constexpr (isV0Daughter ) {
363+ if constexpr (hasItsPid ) {
364364 outputDebugParts (particle.sign (),
365365 (uint8_t )particle.tpcNClsFound (),
366366 particle.tpcNClsFindable (),
@@ -386,8 +386,15 @@ struct femtoDreamProducerTask {
386386 particle.tofNSigmaDe (),
387387 particle.tofNSigmaTr (),
388388 particle.tofNSigmaHe (),
389- -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
390- -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
389+ o2::analysis::femtoDream::itsSignal (particle),
390+ particle.itsNSigmaEl (),
391+ particle.itsNSigmaPi (),
392+ particle.itsNSigmaKa (),
393+ particle.itsNSigmaPr (),
394+ particle.itsNSigmaDe (),
395+ particle.itsNSigmaTr (),
396+ particle.itsNSigmaHe (),
397+ -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
391398 } else {
392399 outputDebugParts (particle.sign (),
393400 (uint8_t )particle.tpcNClsFound (),
@@ -414,15 +421,8 @@ struct femtoDreamProducerTask {
414421 particle.tofNSigmaDe (),
415422 particle.tofNSigmaTr (),
416423 particle.tofNSigmaHe (),
417- o2::analysis::femtoDream::itsSignal (particle),
418- particle.itsNSigmaEl (),
419- particle.itsNSigmaPi (),
420- particle.itsNSigmaKa (),
421- particle.itsNSigmaPr (),
422- particle.itsNSigmaDe (),
423- particle.itsNSigmaTr (),
424- particle.itsNSigmaHe (),
425- -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
424+ -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
425+ -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
426426 }
427427 } else {
428428 outputDebugParts (-999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
@@ -512,7 +512,7 @@ struct femtoDreamProducerTask {
512512 outputCollsMCLabels (-1 );
513513 }
514514 }
515- template <bool isMC, bool useCentrality, bool analysePbPb, typename V0Type , typename TrackType, typename TrackTypeWithItsPid, typename CollisionType >
515+ template <bool isMC, bool hasItsPid, bool useCentrality, bool analysePbPb, typename CollisionType , typename TrackType, typename TrackTypeWithItsPid, typename V0Type >
516516 void fillCollisionsAndTracksAndV0 (CollisionType const & col, TrackType const & tracks, TrackTypeWithItsPid const & tracksWithItsPid, V0Type const & fullV0s)
517517 {
518518 // If triggering is enabled, select only events which were triggered wit our triggers
@@ -578,11 +578,7 @@ struct femtoDreamProducerTask {
578578 trackCuts.fillQA <aod::femtodreamparticle::ParticleType::kTrack , aod::femtodreamparticle::TrackType::kNoChild >(track);
579579 // the bit-wise container of the systematic variations is obtained
580580 std::array<o2::aod::femtodreamparticle::cutContainerType, 2 > cutContainer;
581- if (ConfUseItsPid.value ) {
582- cutContainer = trackCuts.getCutContainer <true , aod::femtodreamparticle::cutContainerType>(track, track.pt (), track.eta (), sqrtf (powf (track.dcaXY (), 2 .f ) + powf (track.dcaZ (), 2 .f )));
583- } else {
584- cutContainer = trackCuts.getCutContainer <false , aod::femtodreamparticle::cutContainerType>(track, track.pt (), track.eta (), sqrtf (powf (track.dcaXY (), 2 .f ) + powf (track.dcaZ (), 2 .f )));
585- }
581+ cutContainer = trackCuts.getCutContainer <hasItsPid, aod::femtodreamparticle::cutContainerType>(track, track.pt (), track.eta (), sqrtf (powf (track.dcaXY (), 2 .f ) + powf (track.dcaZ (), 2 .f )));
586582
587583 // now the table is filled
588584 outputParts (outputCollision.lastIndex (),
@@ -595,7 +591,7 @@ struct femtoDreamProducerTask {
595591 track.dcaXY (), childIDs, 0 , 0 );
596592 tmpIDtrack.push_back (track.globalIndex ());
597593 if (ConfIsDebug.value ) {
598- fillDebugParticle<true , false >(track);
594+ fillDebugParticle<true , hasItsPid >(track);
599595 }
600596
601597 if constexpr (isMC) {
@@ -707,9 +703,9 @@ struct femtoDreamProducerTask {
707703 v0.mLambda (),
708704 v0.mAntiLambda ());
709705 if (ConfIsDebug.value ) {
710- fillDebugParticle<true , true >(postrack); // QA for positive daughter
711- fillDebugParticle<true , true >(negtrack); // QA for negative daughter
712- fillDebugParticle<false , false >(v0); // QA for v0
706+ fillDebugParticle<true , false >(postrack); // QA for positive daughter
707+ fillDebugParticle<true , false >(negtrack); // QA for negative daughter
708+ fillDebugParticle<false , false >(v0); // QA for v0
713709 }
714710 if constexpr (isMC) {
715711 fillMCParticle (col, v0, o2::aod::femtodreamparticle::ParticleType::kV0 );
@@ -794,7 +790,11 @@ struct femtoDreamProducerTask {
794790 // fill the tables
795791 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
796792 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
797- fillCollisionsAndTracksAndV0<false , true , false >(col, tracks, tracksWithItsPid, fullV0s);
793+ if (ConfUseItsPid.value ) {
794+ fillCollisionsAndTracksAndV0<false , true , true , false >(col, tracks, tracksWithItsPid, fullV0s);
795+ } else {
796+ fillCollisionsAndTracksAndV0<false , false , true , false >(col, tracks, tracks, fullV0s);
797+ }
798798 }
799799 PROCESS_SWITCH (femtoDreamProducerTask, processData,
800800 " Provide experimental data" , true );
@@ -810,7 +810,11 @@ struct femtoDreamProducerTask {
810810 // fill the tables
811811 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
812812 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
813- fillCollisionsAndTracksAndV0<false , false , false >(col, tracks, tracksWithItsPid, fullV0s);
813+ if (ConfUseItsPid.value ) {
814+ fillCollisionsAndTracksAndV0<false , true , false , false >(col, tracks, tracksWithItsPid, fullV0s);
815+ } else {
816+ fillCollisionsAndTracksAndV0<false , false , false , false >(col, tracks, tracks, fullV0s);
817+ }
814818 }
815819 PROCESS_SWITCH (femtoDreamProducerTask, processData_noCentrality,
816820 " Provide experimental data without centrality information" , false );
@@ -826,7 +830,11 @@ struct femtoDreamProducerTask {
826830 // fill the tables
827831 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
828832 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
829- fillCollisionsAndTracksAndV0<false , true , true >(col, tracks, tracksWithItsPid, fullV0s);
833+ if (ConfUseItsPid.value ) {
834+ fillCollisionsAndTracksAndV0<false , true , true , true >(col, tracks, tracksWithItsPid, fullV0s);
835+ } else {
836+ fillCollisionsAndTracksAndV0<false , false , true , true >(col, tracks, tracks, fullV0s);
837+ }
830838 }
831839 PROCESS_SWITCH (femtoDreamProducerTask, processData_CentPbPb,
832840 " Provide experimental data with centrality information for PbPb collisions" , false );
@@ -841,9 +849,7 @@ struct femtoDreamProducerTask {
841849 // get magnetic field for run
842850 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
843851 // fill the tables
844- auto tracksWithItsPid = soa::Attach<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
845- aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
846- fillCollisionsAndTracksAndV0<true , true , false >(col, tracks, tracksWithItsPid, fullV0s);
852+ fillCollisionsAndTracksAndV0<false , false , true , false >(col, tracks, tracks, fullV0s);
847853 }
848854 PROCESS_SWITCH (femtoDreamProducerTask, processMC, " Provide MC data" , false );
849855
@@ -857,9 +863,7 @@ struct femtoDreamProducerTask {
857863 // get magnetic field for run
858864 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
859865 // fill the tables
860- auto tracksWithItsPid = soa::Attach<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
861- aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
862- fillCollisionsAndTracksAndV0<true , false , false >(col, tracks, tracksWithItsPid, fullV0s);
866+ fillCollisionsAndTracksAndV0<true , false , false , false >(col, tracks, tracks, fullV0s);
863867 }
864868 PROCESS_SWITCH (femtoDreamProducerTask, processMC_noCentrality, " Provide MC data without requiring a centrality calibration" , false );
865869
@@ -873,9 +877,7 @@ struct femtoDreamProducerTask {
873877 // get magnetic field for run
874878 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
875879 // fill the tables
876- auto tracksWithItsPid = soa::Attach<soa::Join<aod::FemtoFullTracks, aod::McTrackLabels>, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
877- aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
878- fillCollisionsAndTracksAndV0<true , true , true >(col, tracks, tracksWithItsPid, fullV0s);
880+ fillCollisionsAndTracksAndV0<true , false , true , true >(col, tracks, tracks, fullV0s);
879881 }
880882 PROCESS_SWITCH (femtoDreamProducerTask, processMC_CentPbPb, " Provide MC data with centrality information for PbPb collisions" , false );
881883};
0 commit comments