00001 #ifndef DataFormats_TrackerRecHit2D_ClusterRemovalInfo_h 00002 #define DataFormats_TrackerRecHit2D_ClusterRemovalInfo_h 00003 00004 #include "DataFormats/Common/interface/DetSetVectorNew.h" 00005 #include "DataFormats/Provenance/interface/ProductID.h" 00006 00007 namespace reco { 00008 00009 class ClusterRemovalInfo { 00010 public: 00011 typedef std::vector<uint32_t> Indices; 00012 00013 ClusterRemovalInfo() {} 00014 00015 ClusterRemovalInfo(const edm::ProductID &pixelProdID, 00016 const edm::ProductID &stripProdID) : 00017 stripProdID_(stripProdID), pixelProdID_(pixelProdID) { } 00018 00019 Indices & pixelIndices() { return pixelIndices_; } 00020 Indices & stripIndices() { return stripIndices_; } 00021 00022 const Indices & pixelIndices() const { return pixelIndices_; } 00023 const Indices & stripIndices() const { return stripIndices_; } 00024 00025 edm::ProductID pixelProdID() const { return pixelProdID_; } 00026 edm::ProductID stripProdID() const { return stripProdID_; } 00027 edm::ProductID pixelNewProdID() const { return pixelNewProdID_; } 00028 edm::ProductID stripNewProdID() const { return stripNewProdID_; } 00029 00030 void setNewPixelProdID(const edm::ProductID &pixelProdID) { pixelNewProdID_ = pixelProdID; } 00031 void setNewStripProdID(const edm::ProductID &stripProdID) { stripNewProdID_ = stripProdID; } 00032 00033 void swap(reco::ClusterRemovalInfo &other) ; 00034 private: 00035 edm::ProductID stripProdID_, pixelProdID_; 00036 edm::ProductID stripNewProdID_, pixelNewProdID_; 00037 Indices stripIndices_, pixelIndices_; 00038 00039 }; 00040 00041 void swap(reco::ClusterRemovalInfo &cri1, reco::ClusterRemovalInfo &cri2) ; 00042 00043 } 00044 00045 #endif