diff --git a/Geometry/CommonTopologies/interface/SimplePixelTopology.h b/Geometry/CommonTopologies/interface/SimplePixelTopology.h index 98ea51c18ed01..b37b9636fff14 100644 --- a/Geometry/CommonTopologies/interface/SimplePixelTopology.h +++ b/Geometry/CommonTopologies/interface/SimplePixelTopology.h @@ -367,9 +367,6 @@ namespace pixelTopology { static constexpr float dzdrFact = 8 * 0.0285 / 0.015; // from dz/dr to "DY" - static constexpr int minYsizeB1 = 25; - static constexpr int minYsizeB2 = 15; - static constexpr int nPairsMinimal = 33; static constexpr int nPairsFarForwards = nPairsMinimal + 8; // include barrel "jumping" layer pairs static constexpr int nPairs = phase2PixelTopology::nPairs; // include far forward layer pairs @@ -464,9 +461,6 @@ namespace pixelTopology { static constexpr float dzdrFact = 8 * 0.0285 / 0.015; // from dz/dr to "DY" - static constexpr int minYsizeB1 = 36; - static constexpr int minYsizeB2 = 28; - static constexpr int nPairsForQuadruplets = 13; // quadruplets require hits in all layers static constexpr int nPairsForTriplets = nPairsForQuadruplets + 2; // include barrel "jumping" layer pairs static constexpr int nPairs = nPairsForTriplets + 4; // include forward "jumping" layer pairs diff --git a/RecoTracker/PixelSeeding/plugins/CAHitNtupletGeneratorOnGPU.cc b/RecoTracker/PixelSeeding/plugins/CAHitNtupletGeneratorOnGPU.cc index 5100cf734142c..c632d5f5a4fd7 100644 --- a/RecoTracker/PixelSeeding/plugins/CAHitNtupletGeneratorOnGPU.cc +++ b/RecoTracker/PixelSeeding/plugins/CAHitNtupletGeneratorOnGPU.cc @@ -130,6 +130,8 @@ namespace { cfg.getParameter("idealConditions"), (float)cfg.getParameter("z0Cut"), (float)cfg.getParameter("ptCut"), + cfg.getParameter("minYsizeB1"), + cfg.getParameter("minYsizeB2"), cfg.getParameter>("phiCuts")}; } @@ -197,6 +199,9 @@ void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm::Pa trackQualityCuts.add("quadrupletMaxTip", 0.5)->setComment("Max |Tip| for quadruplets, in cm"); trackQualityCuts.add("quadrupletMaxZip", 12.)->setComment("Max |Zip| for quadruplets, in cm"); + desc.add("minYsizeB1", 1)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 1)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase1PixelTopology::phicuts), std::end(phase1PixelTopology::phicuts))) ->setComment("Cuts in phi for cells"); @@ -230,6 +235,9 @@ void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm trackQualityCuts.add("quadrupletMaxTip", 0.5)->setComment("Max |Tip| for quadruplets, in cm"); trackQualityCuts.add("quadrupletMaxZip", 6.)->setComment("Max |Zip| for quadruplets, in cm"); + desc.add("minYsizeB1", 36)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 28)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase1PixelTopology::phicuts), std::end(phase1PixelTopology::phicuts))) ->setComment("Cuts in phi for cells"); @@ -256,6 +264,9 @@ void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm::Pa trackQualityCuts.add("maxTip", 0.3)->setComment("Max |Tip| in cm"); trackQualityCuts.add("maxZip", 12.)->setComment("Max |Zip|, in cm"); + desc.add("minYsizeB1", 25)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 15)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase2PixelTopology::phicuts), std::end(phase2PixelTopology::phicuts))) ->setComment("Cuts in phi for cells"); diff --git a/RecoTracker/PixelSeeding/plugins/alpaka/CAHitNtupletGenerator.cc b/RecoTracker/PixelSeeding/plugins/alpaka/CAHitNtupletGenerator.cc index a9abc99425a2e..326fa9f73dd1b 100644 --- a/RecoTracker/PixelSeeding/plugins/alpaka/CAHitNtupletGenerator.cc +++ b/RecoTracker/PixelSeeding/plugins/alpaka/CAHitNtupletGenerator.cc @@ -150,6 +150,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { cfg.getParameter("idealConditions"), (float)cfg.getParameter("cellZ0Cut"), (float)cfg.getParameter("cellPtCut"), + cfg.getParameter("minYsizeB1"), + cfg.getParameter("minYsizeB2"), cfg.getParameter>("phiCuts")}; } @@ -221,6 +223,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { "\"region " "cuts\" based on the fit results (pT, Tip, Zip)."); + desc.add("minYsizeB1", 1)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 1)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase1PixelTopology::phicuts), std::end(phase1PixelTopology::phicuts))) @@ -257,6 +262,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { "\"region " "cuts\" based on the fit results (pT, Tip, Zip)."); + desc.add("minYsizeB1", 36)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 28)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase1PixelTopology::phicuts), std::end(phase1PixelTopology::phicuts))) @@ -284,6 +292,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE { "Quality cuts based on the results of the track fit:\n - apply cuts based on the fit results (pT, Tip, " "Zip)."); + desc.add("minYsizeB1", 25)->setComment("Min Y cluster size in pixel B1"); + desc.add("minYsizeB2", 15)->setComment("Min Y cluster size in pixel B2"); + desc.add>( "phiCuts", std::vector(std::begin(phase2PixelTopology::phicuts), std::end(phase2PixelTopology::phicuts))) diff --git a/RecoTracker/PixelSeeding/plugins/alpaka/CAPixelDoubletsAlgos.h b/RecoTracker/PixelSeeding/plugins/alpaka/CAPixelDoubletsAlgos.h index 11363c4e2d58a..7637fc2fca61f 100644 --- a/RecoTracker/PixelSeeding/plugins/alpaka/CAPixelDoubletsAlgos.h +++ b/RecoTracker/PixelSeeding/plugins/alpaka/CAPixelDoubletsAlgos.h @@ -52,13 +52,17 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::caPixelDoublets { const bool idealConditions, const float z0Cut, const float ptCut, + const int minYsizeB1, + const int minYsizeB2, const std::vector& phiCutsV) : doClusterCut_(doClusterCut), doZ0Cut_(doZ0Cut), doPtCut_(doPtCut), idealConditions_(idealConditions), z0Cut_(z0Cut), - ptCut_(ptCut) { + ptCut_(ptCut), + minYsizeB1_(minYsizeB1), + minYsizeB2_(minYsizeB2) { assert(phiCutsV.size() == TrackerTraits::nPairs); std::copy(phiCutsV.begin(), phiCutsV.end(), &phiCuts[0]); } @@ -71,6 +75,9 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::caPixelDoublets { float z0Cut_; //FIXME: check if could be const now float ptCut_; + int minYsizeB1_; + int minYsizeB2_; + int phiCuts[T::nPairs]; template @@ -119,11 +126,11 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE::caPixelDoublets { auto mes = (!innerB1) || isOuterLadder ? hh[i].clusterSizeY() : -1; if (innerB1) // B1 - if (mes > 0 && mes < T::minYsizeB1) + if (mes > 0 && mes < minYsizeB1_) return true; // only long cluster (5*8) bool innerB2 = (mi >= T::last_bpix1_detIndex) && (mi < T::last_bpix2_detIndex); //FIXME number if (innerB2) // B2 and F1 - if (mes > 0 && mes < T::minYsizeB2) + if (mes > 0 && mes < minYsizeB2_) return true; return false; diff --git a/RecoTracker/PixelSeeding/plugins/gpuPixelDoubletsAlgos.h b/RecoTracker/PixelSeeding/plugins/gpuPixelDoubletsAlgos.h index 583021081d534..a15095487b097 100644 --- a/RecoTracker/PixelSeeding/plugins/gpuPixelDoubletsAlgos.h +++ b/RecoTracker/PixelSeeding/plugins/gpuPixelDoubletsAlgos.h @@ -47,13 +47,17 @@ namespace gpuPixelDoublets { const bool idealConditions, const float z0Cut, const float ptCut, + const int minYsizeB1, + const int minYsizeB2, const std::vector& phiCutsV) : doClusterCut_(doClusterCut), doZ0Cut_(doZ0Cut), doPtCut_(doPtCut), idealConditions_(idealConditions), z0Cut_(z0Cut), - ptCut_(ptCut) { + ptCut_(ptCut), + minYsizeB1_(minYsizeB1), + minYsizeB2_(minYsizeB2) { assert(phiCutsV.size() == TrackerTraits::nPairs); std::copy(phiCutsV.begin(), phiCutsV.end(), &phiCuts[0]); } @@ -66,6 +70,9 @@ namespace gpuPixelDoublets { float z0Cut_; float ptCut_; + int minYsizeB1_; + int minYsizeB2_; + int phiCuts[T::nPairs]; __device__ __forceinline__ bool zSizeCut(H hh, int i, int o) const { @@ -107,11 +114,11 @@ namespace gpuPixelDoublets { auto mes = (!innerB1) || isOuterLadder ? hh[i].clusterSizeY() : -1; if (innerB1) // B1 - if (mes > 0 && mes < T::minYsizeB1) + if (mes > 0 && mes < minYsizeB1_) return true; // only long cluster (5*8) bool innerB2 = (mi >= T::last_bpix1_detIndex) && (mi < T::last_bpix2_detIndex); //FIXME number if (innerB2) // B2 and F1 - if (mes > 0 && mes < T::minYsizeB2) + if (mes > 0 && mes < minYsizeB2_) return true; return false;