File indexing completed on 2024-05-02 05:10:04
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef TauAnalysis_MCEmbeddingTools_MuonDetCleaner_H
0013 #define TauAnalysis_MCEmbeddingTools_MuonDetCleaner_H
0014
0015 #include "FWCore/Framework/interface/Event.h"
0016 #include "FWCore/Framework/interface/EventSetup.h"
0017 #include "FWCore/Framework/interface/MakerMacros.h"
0018 #include "FWCore/Framework/interface/stream/EDProducer.h"
0019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021 #include "FWCore/Utilities/interface/Transition.h"
0022
0023 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
0024 #include "DataFormats/Common/interface/Handle.h"
0025 #include "DataFormats/Common/interface/OwnVector.h"
0026 #include "DataFormats/Common/interface/RangeMap.h"
0027 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0028 #include "DataFormats/PatCandidates/interface/Muon.h"
0029
0030 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0031 #include "TrackingTools/TrackAssociator/interface/TrackAssociatorParameters.h"
0032 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
0033
0034 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
0035 #include "Geometry/DTGeometry/interface/DTGeometry.h"
0036
0037 #include <map>
0038 #include <string>
0039 #include <vector>
0040
0041 template <typename T1, typename T2>
0042 class MuonDetCleaner : public edm::stream::EDProducer<> {
0043 public:
0044 explicit MuonDetCleaner(const edm::ParameterSet &);
0045 ~MuonDetCleaner() override;
0046
0047 private:
0048 typedef edm::RangeMap<T1, edm::OwnVector<T2>> RecHitCollection;
0049
0050 void beginRun(const edm::Run &, const edm::EventSetup &) override;
0051 void produce(edm::Event &, const edm::EventSetup &) override;
0052 void fillVetoHits(const TrackingRecHit &, std::vector<uint32_t> *);
0053 uint32_t getRawDetId(const T2 &);
0054 bool checkrecHit(const TrackingRecHit &);
0055
0056 const edm::EDGetTokenT<edm::View<pat::Muon>> mu_input_;
0057
0058 std::map<std::string, edm::EDGetTokenT<RecHitCollection>> inputs_;
0059
0060 TrackAssociatorParameters parameters_;
0061 TrackDetectorAssociator trackAssociator_;
0062 edm::EDGetTokenT<DTDigiCollection> m_dtDigisToken;
0063 edm::EDGetTokenT<CSCStripDigiCollection> m_cscDigisToken;
0064 edm::Handle<DTDigiCollection> m_dtDigis;
0065 edm::Handle<CSCStripDigiCollection> m_cscDigis;
0066 edm::ESHandle<DTGeometry> m_dtGeometry;
0067 edm::ESHandle<CSCGeometry> m_cscGeometry;
0068 edm::ESGetToken<DTGeometry, MuonGeometryRecord> m_dtGeometryToken;
0069 edm::ESGetToken<CSCGeometry, MuonGeometryRecord> m_cscGeometryToken;
0070 const edm::ESGetToken<Propagator, TrackingComponentsRecord> propagatorToken_;
0071 double m_digiMaxDistanceX;
0072 };
0073
0074 #endif