File indexing completed on 2023-03-17 11:09:46
0001 #ifndef Muon_HLTMuonPointingFilter_h
0002 #define Muon_HLTMuonPointingFilter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "FWCore/Framework/interface/global/EDFilter.h"
0015
0016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0018
0019
0020 class Propagator;
0021 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
0022 #include "DataFormats/GeometrySurface/interface/Plane.h"
0023 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0024
0025 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0026 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
0027 #include "MagneticField/Engine/interface/MagneticField.h"
0028 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0029 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0030
0031
0032 #include <string>
0033 #include <memory>
0034
0035
0036
0037
0038
0039 class HLTMuonPointingFilter : public edm::global::EDFilter<> {
0040 public:
0041
0042 HLTMuonPointingFilter(const edm::ParameterSet &);
0043
0044
0045 ~HLTMuonPointingFilter() override;
0046
0047
0048 bool filter(edm::StreamID, edm::Event &, edm::EventSetup const &) const override;
0049
0050 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0051
0052 private:
0053 const edm::EDGetTokenT<reco::TrackCollection> theSTAMuonToken;
0054
0055 const std::string
0056 thePropagatorName;
0057 const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorToken;
0058 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theMGFieldToken;
0059 const edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> theTrackingGeometryToken;
0060
0061 const double theRadius;
0062 const double theMaxZ;
0063 const unsigned int thePixHits;
0064 const unsigned int theTkLayers;
0065 const unsigned int theMuonHits;
0066
0067 const Cylinder::CylinderPointer theCyl;
0068 const Plane::PlanePointer thePosPlane;
0069 const Plane::PlanePointer theNegPlane;
0070 };
0071 #endif