File indexing completed on 2024-04-06 12:31:33
0001 #ifndef TrackingTools_PatternTools_ClusterRemovalRefSetter_h
0002 #define TrackingTools_PatternTools_ClusterRemovalRefSetter_h
0003
0004 #include "DataFormats/Common/interface/Handle.h"
0005 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0006 #include "DataFormats/Common/interface/Ref.h"
0007 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
0008 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
0009
0010 #include "DataFormats/TrackerRecHit2D/interface/ClusterRemovalInfo.h"
0011 #include "DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h"
0012 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h"
0013 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h"
0014 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
0015 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit1D.h"
0016 #include "FWCore/Framework/interface/ConsumesCollector.h"
0017
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Utilities/interface/InputTag.h"
0020
0021 class ClusterRemovalRefSetter {
0022 public:
0023 inline ClusterRemovalRefSetter(const edm::Event& iEvent, const edm::InputTag& tag);
0024 inline ClusterRemovalRefSetter(const edm::Event& iEvent, const edm::EDGetTokenT<reco::ClusterRemovalInfo>& token);
0025
0026 inline void reKey(TrackingRecHit* hit) const;
0027
0028 private:
0029 typedef OmniClusterRef::ClusterPixelRef ClusterPixelRef;
0030 typedef OmniClusterRef::ClusterStripRef ClusterStripRef;
0031
0032 inline void reKeyPixel(OmniClusterRef& clusRef) const;
0033 inline void reKeyStrip(OmniClusterRef& clusRef) const;
0034
0035 private:
0036 const reco::ClusterRemovalInfo* cri_;
0037 };
0038
0039 #include "ClusterRemovalRefSetter.icc"
0040 #endif