@@ -169,6 +169,7 @@ class FemtoUniverseDetaDphiStar
169169 }
170170 auto deta = part1.eta () - part2.eta ();
171171 auto dphiAvg = averagePhiStar (part1, part2, 0 );
172+ auto dphi = averagePhiStarFrac (part1, part2);
172173 if (ChosenEventType == femto_universe_container::EventType::same) {
173174 histdetadpisame[0 ][0 ]->Fill (deta, dphiAvg);
174175 } else if (ChosenEventType == femto_universe_container::EventType::mixed) {
@@ -177,7 +178,8 @@ class FemtoUniverseDetaDphiStar
177178 LOG (fatal) << " FemtoUniverseDetaDphiStar: passed arguments don't agree with FemtoUniverseDetaDphiStar's type of events! Please provide same or mixed." ;
178179 }
179180
180- if (std::pow (dphiAvg, 2 ) / std::pow (cutDeltaPhiStarMax, 2 ) + std::pow (deta, 2 ) / std::pow (cutDeltaEtaMax, 2 ) < 1 .) {
181+ // if (std::pow(dphiAvg, 2) / std::pow(cutDeltaPhiStarMax, 2) + std::pow(deta, 2) / std::pow(cutDeltaEtaMax, 2) < 1.) {
182+ if (dphi > 0.02 ) {
181183 return true ;
182184 } else {
183185 if (ChosenEventType == femto_universe_container::EventType::same) {
@@ -554,6 +556,39 @@ class FemtoUniverseDetaDphiStar
554556 return dPhiAvg / static_cast <float >(entries);
555557 }
556558
559+ // / Calculate average phi
560+ template <typename T1, typename T2>
561+ float averagePhiStarFrac (const T1& part1, const T2& part2)
562+ {
563+ std::vector<float > tmpVec1;
564+ std::vector<float > tmpVec2;
565+ phiAtRadiiTPC (part1, tmpVec1);
566+ phiAtRadiiTPC (part2, tmpVec2);
567+ int num = tmpVec1.size ();
568+ float dPhiAvg = 0 ;
569+ float dphi = 0 ;
570+ int entries = 0 ;
571+ double distance = 0 ;
572+ int badpoints = 0 ;
573+ int allpoints = 0 ;
574+
575+ for (int i = 0 ; i < num; i++) {
576+ if (tmpVec1.at (i) != 999 && tmpVec2.at (i) != 999 ) {
577+ dphi = tmpVec1.at (i) - tmpVec2.at (i);
578+ entries++;
579+ } else {
580+ dphi = 0 ;
581+ }
582+ dphi = TVector2::Phi_mpi_pi (dphi);
583+ distance = 2 * TMath::Sin (TMath::Abs (dphi) * 0.5 ) * TmpRadiiTPC[i];
584+ if (distance < 10.0 ) {
585+ badpoints += 1.0 ;
586+ }
587+ allpoints += 1.0 ;
588+ }
589+ return badpoints / allpoints;
590+ }
591+
557592 // Get particle charge from mask
558593 template <typename T1>
559594 float getCharge (const T1& part)
0 commit comments