Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:06:49

0001 #ifndef RPCRecHitsFilter_h
0002 #define RPCRecHitsFilter_h
0003 
0004 // Orso Iorio, INFN Napoli
0005 
0006 #include <string>
0007 #include <map>
0008 #include <fstream>
0009 
0010 #include "FWCore/Framework/interface/Frameworkfwd.h"
0011 #include "FWCore/Framework/interface/Event.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "FWCore/ServiceRegistry/interface/Service.h"
0014 
0015 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0016 #include "DataFormats/MuonDetId/interface/RPCDetId.h"
0017 #include "FWCore/Utilities/interface/InputTag.h"
0018 #include "FWCore/Framework/interface/Run.h"
0019 
0020 #include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"
0021 #include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h"
0022 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
0023 #include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h"
0024 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0025 #include "TrackingTools/DetLayers/interface/MeasurementEstimator.h"
0026 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0027 #include "TrackingTools/MeasurementDet/interface/TrajectoryMeasurementGroup.h"
0028 
0029 #include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
0030 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
0031 #include "DataFormats/RPCDigi/interface/RPCDigi.h"
0032 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0033 
0034 #include "RecoMuon/Navigation/interface/DirectMuonNavigation.h"
0035 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0036 #include "TrackingTools/KalmanUpdators/interface/Chi2MeasurementEstimator.h"
0037 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0038 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0039 #include "TrackingTools/DetLayers/interface/DetLayer.h"
0040 
0041 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0042 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0043 
0044 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0045 #include "FWCore/Framework/interface/stream/EDFilter.h"
0046 
0047 #include "TDirectory.h"
0048 #include "TFile.h"
0049 #include "TTree.h"
0050 
0051 class RPCDetId;
0052 class Trajectory;
0053 class Propagator;
0054 class GeomDet;
0055 class TrajectoryStateOnSurface;
0056 
0057 typedef std::vector<TrajectoryMeasurement> MeasurementContainer;
0058 typedef std::pair<const GeomDet *, TrajectoryStateOnSurface> DetWithState;
0059 typedef std::vector<Trajectory> Trajectories;
0060 
0061 class RPCRecHitFilter : public edm::stream::EDFilter<> {
0062 public:
0063   explicit RPCRecHitFilter(const edm::ParameterSet &);
0064   ~RPCRecHitFilter() override {}
0065 
0066 private:
0067   bool filter(edm::Event &, const edm::EventSetup &) override;
0068 
0069   // es token
0070   const edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeomToken_;
0071   const edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> trackingGeoToken_;
0072 
0073   // event token
0074   edm::EDGetTokenT<RPCRecHitCollection> rpcRecHitToken_;
0075 
0076   std::string RPCDataLabel_;
0077 
0078   int centralBX_, BXWindow_, minHits_, hitsInStations_;
0079 
0080   bool Verbose_, Debug_, Barrel_, EndcapPositive_, EndcapNegative_, cosmicsVeto_;
0081 };
0082 
0083 #endif  // RPCRecHitsFilter_h