11 #include <tracking/modules/svdROIFinder/SVDShaperDigitFilterModule.h>
29 setDescription(
"The module produce a StoreArray of SVDShaperDigit inside the ROIs.");
32 addParam(
"SVDShaperDigitsName", m_SVDShaperDigitsName,
"The name of the StoreArray of SVDShaperDigits to be filtered",
34 addParam(
"SVDShaperDigitsInsideROIName", m_SVDShaperDigitsInsideROIName,
"The name of the StoreArray of Filtered SVDShaperDigits",
35 std::string(
"SVDShaperDigitsIN"));
36 addParam(
"SVDShaperDigitsOutsideROIName", m_SVDShaperDigitsOutsideROIName,
"The name of the StoreArray of Filtered SVDShaperDigits",
37 std::string(
"SVDShaperDigitsOUT"));
38 addParam(
"ROIidsName", m_ROIidsName,
"The name of the StoreArray of ROIs", std::string(
""));
39 addParam(
"CreateOutside", m_CreateOutside,
"Create the StoreArray of PXD pixel outside the ROIs",
false);
50 m_SVDShaperDigits.isRequired(m_SVDShaperDigitsName);
51 m_ROIs.isRequired(m_ROIidsName);
54 SVDShaperDigits.isRequired();
55 m_selectorIN.registerSubset(SVDShaperDigits, m_SVDShaperDigitsInsideROIName);
58 if (m_CreateOutside) {
59 m_selectorOUT.registerSubset(SVDShaperDigits, m_SVDShaperDigitsOutsideROIName);
68 multimap< VxdID, ROIid > ROIids;
70 for (
auto ROI : m_ROIs)
71 ROIids.insert(pair<VxdID, ROIid> (ROI.getSensorID() , ROI));
73 m_selectorIN.select([ROIids](
const SVDShaperDigit * theSVDShaper) {
74 auto ROIidsRange = ROIids.equal_range(theSVDShaper->
getSensorID()) ;
75 for (
auto theROI = ROIidsRange.first ; theROI != ROIidsRange.second; theROI ++)
76 if (theROI->second.Contains(*theSVDShaper))
82 if (m_CreateOutside) {
83 m_selectorOUT.select([ROIids](
const SVDShaperDigit * theSVDShaper) {
84 auto ROIidsRange = ROIids.equal_range(theSVDShaper->
getSensorID()) ;
85 for (
auto theROI = ROIidsRange.first ; theROI != ROIidsRange.second; theROI ++)
86 if (theROI->second.Contains(*theSVDShaper))