@@ -263,8 +263,8 @@ struct femtoDreamProducerTask {
263263 Configurable<float > ConfTrkMaxChi2PerClusterITS{" ConfTrkMaxChi2PerClusterITS" , 1000 .0f , " Minimal track selection: max allowed chi2 per ITS cluster" }; // 36.0 is default
264264 Configurable<bool > ConfTrkTPCRefit{" ConfTrkTPCRefit" , false , " True: require TPC refit" };
265265 Configurable<bool > ConfTrkITSRefit{" ConfTrkITSRefit" , false , " True: require ITS refit" };
266- Configurable<bool > ConfTPCFracsClsCut{ " ConfTPCFracsClsCut " , false , " Cut fraction of shared TPC clusters" };
267- Configurable<float > ConfTPCFracsClsMax{ " ConfTPCFracsCls " , 1000 .f , " Maximum value for fraction of shared TPC clusters" };
266+ Configurable<bool > ConfCutTPCFracSharedCls{ " ConfCutTPCFracSharedCls " , false , " Cut fraction of shared TPC clusters" };
267+ Configurable<float > ConfTPCFracSharedClsMax{ " ConfTPCFracSharedClsMax " , 1000 .f , " Maximum value for fraction of shared TPC clusters" };
268268 } OptionTrackSpecialSelections;
269269
270270 struct : o2::framework::ConfigurableGroup {
@@ -274,6 +274,7 @@ struct femtoDreamProducerTask {
274274 } rctCut;
275275
276276 struct : o2::framework::ConfigurableGroup {
277+ std::string prefix = std::string(" qnCal" );
277278 Configurable<bool > ConfFlowCalculate{" ConfFlowCalculate" , false , " Evt sel: Cumulant of flow" }; // To do
278279 Configurable<bool > ConfQnSeparation{" ConfQnSeparation" , false , " Evt sel: Qn of event" };
279280 Configurable<std::vector<float >> ConfQnBinSeparator{" ConfQnBinSeparator" , std::vector<float >{-999 .f , -999 .f , -999 .f }, " Qn bin separator" };
@@ -285,9 +286,11 @@ struct femtoDreamProducerTask {
285286 } qnCal;
286287
287288 struct : o2::framework::ConfigurableGroup {
288- Configurable<bool > ConfIsUsePileUp{" ConfIsUsePileUp" , false , " Required for choosing whether to run the pile-up cuts" };
289+ std::string prefix = std::string(" OptionEvtSpecialSelections" );
290+ Configurable<bool > ConfIsUsePileUpPbPb{" ConfIsUsePileUpPbPb" , false , " Required for choosing whether to run the pile-up cuts" };
289291 Configurable<bool > ConfEvNoSameBunchPileup{" ConfEvNoSameBunchPileup" , false , " Require kNoSameBunchPileup selection on Events." };
290292 Configurable<bool > ConfEvIsGoodITSLayersAll{" ConfEvIsGoodITSLayersAll" , false , " Require kIsGoodITSLayersAll selection on Events." };
293+ Configurable<bool > ConfIsUseOccupancy{" ConfIsUseOccupancy" , false , " Required for choosing whether to run the pile-up cuts" };
291294 Configurable<int > ConfTPCOccupancyMin{" ConfTPCOccupancyMin" , 0 , " Minimum value for TPC Occupancy selection" };
292295 Configurable<int > ConfTPCOccupancyMax{" ConfTPCOccupancyMax" , 5000 , " Maximum value for TPC Occupancy selection" };
293296 } OptionEvtSpecialSelections;
@@ -704,7 +707,7 @@ struct femtoDreamProducerTask {
704707 outputCollsMCLabels (-1 );
705708 }
706709 }
707- template <bool isMC, bool hasItsPid, bool useCentrality, bool analysePbPb, typename CascadeType, typename V0Type, typename TrackType, typename TrackTypeWithItsPid, typename CollisionType>
710+ template <bool isMC, bool hasItsPid, bool useCentrality, bool analysePbPb, bool doFlow, typename CascadeType, typename V0Type, typename TrackType, typename TrackTypeWithItsPid, typename CollisionType>
708711 void fillCollisionsAndTracksAndV0AndCascade (CollisionType const & col, TrackType const & tracks, TrackTypeWithItsPid const & tracksWithItsPid, V0Type const & fullV0s, CascadeType const & fullCascades)
709712 {
710713 // If triggering is enabled, select only events which were triggered wit our triggers
@@ -764,10 +767,20 @@ struct femtoDreamProducerTask {
764767
765768 // Pileup rejection in PbPb data
766769 if constexpr (analysePbPb) {
770+ <<<<<<< HEAD
767771 if (OptionEvtSpecialSelections.ConfIsUsePileUp &&
768772 !colCuts.isPileUpCollisionPbPb (col, OptionEvtSpecialSelections.ConfEvNoSameBunchPileup , OptionEvtSpecialSelections.ConfEvIsGoodITSLayersAll ,
769773 OptionEvtSpecialSelections.ConfTPCOccupancyMin , OptionEvtSpecialSelections.ConfTPCOccupancyMax )) {
770774 return ;
775+ =======
776+ if (OptionEvtSpecialSelections.ConfIsUsePileUpPbPb &&
777+ !colCuts.isPileUpCollisionPbPb (col, OptionEvtSpecialSelections.ConfEvNoSameBunchPileup , OptionEvtSpecialSelections.ConfEvIsGoodITSLayersAll )){
778+ return ;
779+ }
780+ if (OptionEvtSpecialSelections.ConfIsUseOccupancy &&
781+ !colCuts.occupancySelection (col, OptionEvtSpecialSelections.ConfTPCOccupancyMin , OptionEvtSpecialSelections.ConfTPCOccupancyMax )) {
782+ return ;
783+ >>>>>>> 79d4db6e4 (fixed as comments)
771784 }
772785 }
773786
@@ -776,6 +789,10 @@ struct femtoDreamProducerTask {
776789 fillMCCollision (col);
777790 }
778791
792+ if constexpr (doFlow) {
793+ fillCollisionsFlow (col, tracks, mult, spher, multNtr);
794+ }
795+
779796 std::vector<int > childIDs = {0 , 0 }; // these IDs are necessary to keep track of the children
780797 std::vector<int > cascadechildIDs = {0 , 0 , 0 }; // these IDs are necessary to keep track of the children
781798 std::vector<int > tmpIDtrack; // this vector keeps track of the matching of the primary track table row <-> aod::track table global index
@@ -801,7 +818,7 @@ struct femtoDreamProducerTask {
801818 }
802819
803820 if constexpr (analysePbPb) {
804- if (OptionTrackSpecialSelections.ConfTPCFracsClsCut && track.tpcFractionSharedCls () > OptionTrackSpecialSelections.ConfTPCFracsClsMax ) {
821+ if (OptionTrackSpecialSelections.ConfCutTPCFracSharedCls && track.tpcFractionSharedCls () > OptionTrackSpecialSelections.ConfTPCFracSharedClsMax ) {
805822 continue ;
806823 }
807824 }
@@ -1124,18 +1141,17 @@ struct femtoDreamProducerTask {
11241141 }
11251142 }
11261143
1127- // Separate function for fill flow and qn
1128- template <bool isMC, bool useCentrality, bool analysePbPb, typename CollisionType, typename TrackType>
1129- void fillCollisionsFlow (CollisionType const & col, TrackType const & tracks)
1144+ template <typename CollisionType, typename TrackType>
1145+ void fillCollisionsFlow (CollisionType const & col, TrackType const & tracks, float mult, float spher, float multNtr)
11301146 {
1131- // If triggering is enabled, select only events which were triggered wit our triggers
1132- if (ConfEnableTriggerSelection) {
1133- bool zorroSelected = zorro.isSelected (col.template bc_as <aod::BCsWithTimestamps>().globalBC ()); // / check if event was selected by triggers of interest
1134- if (!zorroSelected) {
1135- return ;
1136- }
1147+ float myqn = -999 .;
1148+ // Calculate and fill qn values
1149+ if (qnCal.ConfQnSeparation ) {
1150+ myqn = colCuts.computeqnVec (col);
1151+ outputExtQnCollision (myqn, col.trackOccupancyInTimeRange ());
11371152 }
11381153
1154+ <<<<<<< HEAD
11391155 const auto spher = colCuts.computeSphericity (col, tracks);
11401156 float mult = 0 ;
11411157 int multNtr = 0 ;
@@ -1182,6 +1198,8 @@ struct femtoDreamProducerTask {
11821198 float myqn = colCuts.computeqnVec (col);
11831199 outputExtQnCollision (myqn, col.trackOccupancyInTimeRange ());
11841200
1201+ =======
1202+ >>>>>>> 79d4db6e4 (fixed as comments)
11851203 // Calculate flow via cumulant
11861204 if (qnCal.ConfFlowCalculate ) {
11871205 int qnBin = colCuts.myqnBin (mult, qnCal.ConfCentralityMax , qnCal.ConfQnBinSeparator , qnCal.ConfdoFillHisto , spher, myqn, qnCal.ConfNumQnBins , multNtr, qnCal.ConfCentBinWidth );
@@ -1205,9 +1223,9 @@ struct femtoDreamProducerTask {
12051223 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
12061224 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
12071225 if (ConfUseItsPid.value ) {
1208- fillCollisionsAndTracksAndV0AndCascade<false , true , true , false >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
1226+ fillCollisionsAndTracksAndV0AndCascade<false , true , true , false , false >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
12091227 } else {
1210- fillCollisionsAndTracksAndV0AndCascade<false , false , true , false >(col, tracks, tracks, fullV0s, fullCascades);
1228+ fillCollisionsAndTracksAndV0AndCascade<false , false , true , false , false >(col, tracks, tracks, fullV0s, fullCascades);
12111229 }
12121230 }
12131231 PROCESS_SWITCH (femtoDreamProducerTask, processData,
@@ -1226,9 +1244,9 @@ struct femtoDreamProducerTask {
12261244 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
12271245 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
12281246 if (ConfUseItsPid.value ) {
1229- fillCollisionsAndTracksAndV0AndCascade<false , true , false , false >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
1247+ fillCollisionsAndTracksAndV0AndCascade<false , true , false , false , false >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
12301248 } else {
1231- fillCollisionsAndTracksAndV0AndCascade<false , false , false , false >(col, tracks, tracks, fullV0s, fullCascades);
1249+ fillCollisionsAndTracksAndV0AndCascade<false , false , false , false , false >(col, tracks, tracks, fullV0s, fullCascades);
12321250 }
12331251 }
12341252 PROCESS_SWITCH (femtoDreamProducerTask, processData_noCentrality,
@@ -1246,9 +1264,15 @@ struct femtoDreamProducerTask {
12461264 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
12471265 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
12481266 if (ConfUseItsPid.value ) {
1267+ <<<<<<< HEAD
12491268 fillCollisionsAndTracksAndV0AndCascade<false , true , true , true >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
12501269 } else {
12511270 fillCollisionsAndTracksAndV0AndCascade<false , false , true , true >(col, tracks, tracks, fullV0s, fullCascades);
1271+ =======
1272+ fillCollisionsAndTracksAndV0AndCascade<false , true , true , true , false >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
1273+ } else {
1274+ fillCollisionsAndTracksAndV0AndCascade<false , false , true , true , false >(col, tracks, tracks, fullV0s, fullCascades);
1275+ >>>>>>> 79d4db6e4 (fixed as comments)
12521276 }
12531277 }
12541278 PROCESS_SWITCH (femtoDreamProducerTask, processData_CentPbPb,
@@ -1266,13 +1290,19 @@ struct femtoDreamProducerTask {
12661290 auto tracksWithItsPid = soa::Attach<aod::FemtoFullTracks, aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaPi, aod::pidits::ITSNSigmaKa,
12671291 aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe, aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe>(tracks);
12681292 if (ConfUseItsPid.value ) {
1293+ <<<<<<< HEAD
12691294 fillCollisionsAndTracksAndV0AndCascade<false , true , true , true >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
12701295 } else {
12711296 fillCollisionsAndTracksAndV0AndCascade<false , false , true , true >(col, tracks, tracks, fullV0s, fullCascades);
12721297 }
12731298
12741299 if (qnCal.ConfQnSeparation ) {
12751300 fillCollisionsFlow<false , true , true >(col, tracks);
1301+ =======
1302+ fillCollisionsAndTracksAndV0AndCascade<false , true , true , true , true >(col, tracks, tracksWithItsPid, fullV0s, fullCascades);
1303+ } else {
1304+ fillCollisionsAndTracksAndV0AndCascade<false , false , true , true , true >(col, tracks, tracks, fullV0s, fullCascades);
1305+ >>>>>>> 79d4db6e4 (fixed as comments)
12761306 }
12771307 }
12781308 PROCESS_SWITCH (femtoDreamProducerTask, processData_CentPbPb_qvec,
@@ -1289,7 +1319,7 @@ struct femtoDreamProducerTask {
12891319 // get magnetic field for run
12901320 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
12911321 // fill the tables
1292- fillCollisionsAndTracksAndV0AndCascade<false , false , true , false >(col, tracks, tracks, fullV0s, fullCascades);
1322+ fillCollisionsAndTracksAndV0AndCascade<false , false , true , false , false >(col, tracks, tracks, fullV0s, fullCascades);
12931323 }
12941324 PROCESS_SWITCH (femtoDreamProducerTask, processMC, " Provide MC data" , false );
12951325
@@ -1304,7 +1334,7 @@ struct femtoDreamProducerTask {
13041334 // get magnetic field for run
13051335 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
13061336 // fill the tables
1307- fillCollisionsAndTracksAndV0AndCascade<true , false , false , false >(col, tracks, tracks, fullV0s, fullCascades);
1337+ fillCollisionsAndTracksAndV0AndCascade<true , false , false , false , false >(col, tracks, tracks, fullV0s, fullCascades);
13081338 }
13091339 PROCESS_SWITCH (femtoDreamProducerTask, processMC_noCentrality, " Provide MC data without requiring a centrality calibration" , false );
13101340
@@ -1319,7 +1349,11 @@ struct femtoDreamProducerTask {
13191349 // get magnetic field for run
13201350 initCCDB_Mag_Trig (col.bc_as <aod::BCsWithTimestamps>());
13211351 // fill the tables
1352+ <<<<<<< HEAD
13221353 fillCollisionsAndTracksAndV0AndCascade<true , false , true , true >(col, tracks, tracks, fullV0s, fullCascades);
1354+ =======
1355+ fillCollisionsAndTracksAndV0AndCascade<true , false , true , true , false >(col, tracks, tracks, fullV0s, fullCascades);
1356+ >>>>>>> 79d4db6e4 (fixed as comments)
13231357 }
13241358 PROCESS_SWITCH (femtoDreamProducerTask, processMC_CentPbPb, " Provide MC data with centrality information for PbPb collisions" , false );
13251359};
0 commit comments