11 #include <tracking/modules/pxdDataReduction/PXDRawHitFilterModule.h>
12 #include <tracking/dataobjects/ROIid.h>
30 setDescription(
"The module produce a StoreArray of PXDRawHit inside the ROIs.");
31 setPropertyFlags(c_ParallelProcessingCertified);
34 addParam(
"PXDRawHitsName", m_PXDRawHitsName,
"The name of the StoreArray of PXDRawHits to be filtered", std::string(
""));
35 addParam(
"PXDRawHitsInsideROIName", m_PXDRawHitsInsideROIName,
"The name of the StoreArray of Filtered PXDRawHits",
36 std::string(
"PXDRawHitsIN"));
37 addParam(
"PXDRawHitsOutsideROIName", m_PXDRawHitsOutsideROIName,
"The name of the StoreArray of Filtered PXDRawHits",
38 std::string(
"PXDRawHitsOUT"));
39 addParam(
"ROIidsName", m_ROIidsName,
"The name of the StoreArray of ROIs", std::string(
""));
40 addParam(
"CreateOutside", m_CreateOutside,
"Create the StoreArray of PXD pixel outside the ROIs",
false);
48 roiIDs.isRequired(m_ROIidsName);
51 PXDRawHits.isRequired();
52 if (m_PXDRawHitsName == m_PXDRawHitsInsideROIName) {
53 m_selectorIN.registerSubset(PXDRawHits);
55 m_selectorIN.registerSubset(PXDRawHits, m_PXDRawHitsInsideROIName);
56 m_selectorIN.inheritAllRelations();
59 if (m_CreateOutside) {
60 if (m_PXDRawHitsName == m_PXDRawHitsOutsideROIName) {
61 m_selectorOUT.registerSubset(PXDRawHits);
63 m_selectorOUT.registerSubset(PXDRawHits, m_PXDRawHitsOutsideROIName);
64 m_selectorOUT.inheritAllRelations();
74 multimap< VxdID, ROIid > ROIids;
76 for (
auto ROI : ROIids_store_array)
77 ROIids.insert(pair<VxdID, ROIid> (ROI.getSensorID() , ROI));
79 m_selectorIN.select([ROIids](
const PXDRawHit * thePxdRawHit) {
80 auto ROIidsRange = ROIids.equal_range(thePxdRawHit->
getSensorID()) ;
81 for (
auto theROI = ROIidsRange.first ; theROI != ROIidsRange.second; theROI ++)
82 if (theROI->second.Contains(*thePxdRawHit))
88 if (m_CreateOutside) {
89 m_selectorOUT.select([ROIids](
const PXDRawHit * thePxdRawHit) {
90 auto ROIidsRange = ROIids.equal_range(thePxdRawHit->
getSensorID()) ;
91 for (
auto theROI = ROIidsRange.first ; theROI != ROIidsRange.second; theROI ++)
92 if (theROI->second.Contains(*thePxdRawHit))