Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:15

0001 #ifndef TRACKTORPC_H
0002 #define TRACKTORPC_H
0003 
0004 #include "FWCore/Framework/interface/Frameworkfwd.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0007 #include "FWCore/Utilities/interface/InputTag.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 
0010 #include "DataFormats/TrackReco/interface/Track.h"
0011 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0012 #include "DataFormats/TrackReco/interface/TrackExtraFwd.h"
0013 #include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
0014 #include "DataFormats/MuonReco/interface/MuonFwd.h"
0015 #include "DataFormats/MuonReco/interface/Muon.h"
0016 
0017 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0018 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0019 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0020 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0021 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0022 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0023 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0024 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0025 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h"
0026 
0027 #include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h"
0028 #include "RecoMuon/Records/interface/MuonRecoGeometryRecord.h"
0029 #include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h"
0030 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0031 
0032 #include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
0033 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
0034 #include "DataFormats/Common/interface/Ref.h"
0035 
0036 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0037 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0038 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
0039 #include "Geometry/RPCGeometry/interface/RPCRoll.h"
0040 #include "Geometry/RPCGeometry/interface/RPCGeomServ.h"
0041 #include "Geometry/DTGeometry/interface/DTLayer.h"
0042 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
0043 #include "Geometry/CommonTopologies/interface/RectangularStripTopology.h"
0044 #include "Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h"
0045 
0046 #include "TrackingTools/TrackRefitter/interface/TrackTransformerForCosmicMuons.h"
0047 #include "TrackingTools/TrackRefitter/interface/TrackTransformerBase.h"
0048 #include "TrackingTools/TrackRefitter/interface/TrackTransformer.h"
0049 
0050 #include <memory>
0051 
0052 class RPCGeometry;
0053 class DTGeometry;
0054 class DTObjectMap;
0055 class CSCGeometry;
0056 class CSCObjectMap;
0057 class MuonGeometryRecord;
0058 class Propagator;
0059 class TrackingComponentsRecord;
0060 
0061 using reco::MuonCollection;
0062 using reco::TrackCollection;
0063 typedef std::vector<Trajectory> Trajectories;
0064 
0065 class TracktoRPC {
0066 public:
0067   TracktoRPC(const edm::ParameterSet& iConfig, const edm::InputTag& tracklabel, edm::ConsumesCollector iC);
0068   std::unique_ptr<RPCRecHitCollection> thePoints(reco::TrackCollection const* alltracks,
0069                                                  edm::EventSetup const& iSetup,
0070                                                  bool debug);
0071 
0072 private:
0073   bool ValidRPCSurface(RPCDetId rpcid, LocalPoint LocalP, const RPCGeometry* rpcGeo);
0074 
0075   edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeoToken_;
0076   edm::ESGetToken<DTGeometry, MuonGeometryRecord> dtGeoToken_;
0077   edm::ESGetToken<DTObjectMap, MuonGeometryRecord> dtMapToken_;
0078   edm::ESGetToken<CSCGeometry, MuonGeometryRecord> cscGeoToken_;
0079   edm::ESGetToken<CSCObjectMap, MuonGeometryRecord> cscMapToken_;
0080   edm::ESGetToken<Propagator, TrackingComponentsRecord> propagatorToken_;
0081   std::unique_ptr<TrackTransformerBase> theTrackTransformer;
0082 };
0083 
0084 #endif