File indexing completed on 2023-03-17 11:23:03
0001 #ifndef RecoTracker_TkTrackingRegions_GlobalTrackingRegionProducer_H
0002 #define RecoTracker_TkTrackingRegions_GlobalTrackingRegionProducer_H
0003
0004 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegionProducer.h"
0005 #include "RecoTracker/TkTrackingRegions/interface/GlobalTrackingRegion.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0008 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0009 #include "FWCore/Framework/interface/ConsumesCollector.h"
0010
0011 class GlobalTrackingRegionProducer : public TrackingRegionProducer {
0012 public:
0013 GlobalTrackingRegionProducer(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) {
0014 edm::ParameterSet regionPSet = cfg.getParameter<edm::ParameterSet>("RegionPSet");
0015
0016 thePtMin = regionPSet.getParameter<double>("ptMin");
0017 theOriginRadius = regionPSet.getParameter<double>("originRadius");
0018 theOriginHalfLength = regionPSet.getParameter<double>("originHalfLength");
0019 double xPos = regionPSet.getParameter<double>("originXPos");
0020 double yPos = regionPSet.getParameter<double>("originYPos");
0021 double zPos = regionPSet.getParameter<double>("originZPos");
0022 thePrecise = regionPSet.getParameter<bool>("precise");
0023 theOrigin = GlobalPoint(xPos, yPos, zPos);
0024 }
0025
0026 ~GlobalTrackingRegionProducer() override {}
0027
0028 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0029 edm::ParameterSetDescription desc;
0030
0031 desc.add<bool>("precise", true);
0032 desc.add<bool>("useMultipleScattering", false);
0033 desc.add<double>("originHalfLength", 21.2);
0034 desc.add<double>("originRadius", 0.2);
0035 desc.add<double>("originXPos", 0.0);
0036 desc.add<double>("originYPos", 0.0);
0037 desc.add<double>("originZPos", 0.0);
0038 desc.add<double>("ptMin", 0.9);
0039
0040
0041 edm::ParameterSetDescription descRegion;
0042 descRegion.add<edm::ParameterSetDescription>("RegionPSet", desc);
0043
0044 descriptions.add("globalTrackingRegion", descRegion);
0045 }
0046
0047 std::vector<std::unique_ptr<TrackingRegion> > regions(const edm::Event&, const edm::EventSetup&) const override {
0048 std::vector<std::unique_ptr<TrackingRegion> > result;
0049 result.push_back(
0050 std::make_unique<GlobalTrackingRegion>(thePtMin, theOrigin, theOriginRadius, theOriginHalfLength, thePrecise));
0051 return result;
0052 }
0053
0054 private:
0055 double thePtMin;
0056 GlobalPoint theOrigin;
0057 double theOriginRadius;
0058 double theOriginHalfLength;
0059 bool thePrecise;
0060 };
0061
0062 #endif