@@ -100,6 +100,7 @@ struct upcPhotonuclearAnalysisJMG {
100100 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
101101
102102 // Declare configurables on events/collisions
103+ Configurable<int > nEvenstMixed{" nEvenstMixed" , 3 , {" Events to be Mixed" }};
103104 Configurable<float > myZVtxCut{" myZVtxCut" , 10 ., {" My collision cut" }};
104105 Configurable<float > myTimeZNACut{" myTimeZNACut" , 2 ., {" My collision cut" }};
105106 Configurable<float > myTimeZNCCut{" myTimeZNCCut" , 2 ., {" My collision cut" }};
@@ -275,14 +276,15 @@ struct upcPhotonuclearAnalysisJMG {
275276 }
276277
277278 std::vector<double > vtxBinsEdges{VARIABLE_WIDTH, -10 .0f , -5 .0f , 0 .0f , 5 .0f , 10 .0f };
278- // std::vector<double> multBinsEdges {VARIABLE_WIDTH, 0.0f, 50.0f, 400.0f };
279+ std::vector<double > gapSideBinsEdges {VARIABLE_WIDTH, - 0.5 , 0.5 , 1.5 };
279280
280281 SliceCache cache;
281282
282283 // Binning only on PosZ without multiplicity
283- using BinningType = ColumnBinningPolicy<aod::collision::PosZ>;
284- BinningType bindingOnVtx{{vtxBinsEdges}, true };
285- SameKindPair<FullSGUDCollision, FullUDTracks, BinningType> pairs{bindingOnVtx, 5 , -1 , &cache};
284+ // using BinningType = ColumnBinningPolicy<aod::collision::PosZ>;
285+ using BinningType = ColumnBinningPolicy<aod::collision::PosZ, aod::udcollision::GapSide>;
286+ BinningType bindingOnVtx{{vtxBinsEdges, {gapSideBinsEdges}}, true };
287+ SameKindPair<FullSGUDCollision, FullUDTracks, BinningType> pairs{bindingOnVtx, nEvenstMixed, -1 , &cache};
286288
287289 // ColumnBinningPolicy<aod::collision::PosZ, aod::udcollision::TotalFT0AmplitudeC> bindingOnVtx{{vtxBinsEdges, multBinsEdges}, true};
288290
@@ -376,7 +378,7 @@ struct upcPhotonuclearAnalysisJMG {
376378 template <typename TTracks>
377379 void fillQAUD (const TTracks tracks)
378380 {
379- for (auto & track : tracks) {
381+ for (const auto & track : tracks) {
380382 histos.fill (HIST (" yields" ), tracks.size (), track.pt (), eta (track.px (), track.py (), track.pz ()));
381383 histos.fill (HIST (" etaphi" ), tracks.size (), eta (track.px (), track.py (), track.pz ()), phi (track.px (), track.py ()));
382384 }
@@ -394,12 +396,12 @@ struct upcPhotonuclearAnalysisJMG {
394396 void fillCorrelationsUD (TTarget target, const TTracks tracks1, const TTracks tracks2, float multiplicity, float posZ)
395397 {
396398 multiplicity = tracks1.size ();
397- for (auto & track1 : tracks1) {
399+ for (const auto & track1 : tracks1) {
398400 if (isTrackCut (track1) == false ) {
399401 continue ;
400402 }
401403 target->getTriggerHist ()->Fill (CorrelationContainer::kCFStepReconstructed , track1.pt (), multiplicity, posZ, 1.0 );
402- for (auto & track2 : tracks2) {
404+ for (const auto & track2 : tracks2) {
403405 if (track1 == track2) {
404406 continue ;
405407 }
@@ -448,7 +450,7 @@ struct upcPhotonuclearAnalysisJMG {
448450 histos.fill (HIST (" Events/SGsideA/hZVtx" ), reconstructedCollision.posZ ());
449451 histos.fill (HIST (" Events/SGsideA/hAmplitudFT0A" ), reconstructedCollision.totalFT0AmplitudeA ());
450452 histos.fill (HIST (" Events/SGsideA/hAmplitudFT0C" ), reconstructedCollision.totalFT0AmplitudeC ());
451- for (auto & track : reconstructedTracks) {
453+ for (const auto & track : reconstructedTracks) {
452454 if (track.sign () == 1 || track.sign () == -1 ) {
453455 if (isTrackCut (track) == false ) {
454456 continue ;
@@ -504,7 +506,7 @@ struct upcPhotonuclearAnalysisJMG {
504506 histos.fill (HIST (" Events/SGsideC/hZVtx" ), reconstructedCollision.posZ ());
505507 histos.fill (HIST (" Events/SGsideC/hAmplitudFT0A" ), reconstructedCollision.totalFT0AmplitudeA ());
506508 histos.fill (HIST (" Events/SGsideC/hAmplitudFT0C" ), reconstructedCollision.totalFT0AmplitudeC ());
507- for (auto & track : reconstructedTracks) {
509+ for (const auto & track : reconstructedTracks) {
508510 if (track.sign () == 1 || track.sign () == -1 ) {
509511 if (isTrackCut (track) == false ) {
510512 continue ;
@@ -593,12 +595,13 @@ struct upcPhotonuclearAnalysisJMG {
593595
594596 PROCESS_SWITCH (upcPhotonuclearAnalysisJMG, processSame, " Process same event" , true );
595597
596- void processMixed ()
598+ void processMixed (FullSGUDCollision::iterator const & reconstructedCollision )
597599 {
600+ (void )reconstructedCollision;
598601 // int sgSide = reconstructedCollision.gapSide();
599602 // int sgSide = 0;
600603
601- for (auto & [collision1, tracks1, collision2, tracks2] : pairs) {
604+ for (const auto & [collision1, tracks1, collision2, tracks2] : pairs) {
602605 if (collision1.size () == 0 || collision2.size () == 0 ) {
603606 LOGF (info, " One or both collisions are empty." );
604607 continue ;
@@ -614,7 +617,8 @@ struct upcPhotonuclearAnalysisJMG {
614617 if (fillCollisionUD (mixedGapSideA, multiplicity) == false ) {
615618 return ;
616619 }
617- histos.fill (HIST (" eventcount" ), bindingOnVtx.getBin ({collision1.posZ ()}));
620+ // histos.fill(HIST("eventcount"), bindingOnVtx.getBin({collision1.posZ()}));
621+ histos.fill (HIST (" eventcount" ), bindingOnVtx.getBin ({collision1.posZ (), collision1.gapSide ()}));
618622 fillCorrelationsUD (mixedGapSideA, tracks1, tracks2, multiplicity, collision1.posZ ());
619623 LOGF (info, " Filling mixedGapSideA events, Gap for side A" );
620624 }
@@ -628,7 +632,6 @@ struct upcPhotonuclearAnalysisJMG {
628632 if (fillCollisionUD (mixedGapSideC, multiplicity) == false ) {
629633 return ;
630634 }
631- histos.fill (HIST (" eventcount" ), bindingOnVtx.getBin ({collision1.posZ ()}));
632635 fillCorrelationsUD (mixedGapSideC, tracks1, tracks2, multiplicity, collision1.posZ ());
633636 LOGF (info, " Filling mixedGapSideC events, Gap for side C" );
634637 } else {
0 commit comments