File indexing completed on 2024-04-06 12:28:34
0001 #ifndef RecoTracker_PixelSeeding_plugins_PixelTripletHLTGenerator_h
0002 #define RecoTracker_PixelSeeding_plugins_PixelTripletHLTGenerator_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "CombinedHitTripletGenerator.h"
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0014 #include "RecoTracker/PixelSeeding/interface/HitTripletGeneratorFromPairAndLayers.h"
0015 #include "RecoTracker/Record/interface/TrackerMultipleScatteringRecord.h"
0016 #include "RecoTracker/TkMSParametrization/interface/MultipleScatteringParametrisationMaker.h"
0017
0018 #include <utility>
0019 #include <vector>
0020
0021 class SeedComparitor;
0022
0023 class PixelTripletHLTGenerator : public HitTripletGeneratorFromPairAndLayers {
0024 typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType;
0025
0026 public:
0027 PixelTripletHLTGenerator(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC)
0028 : PixelTripletHLTGenerator(cfg, iC) {}
0029 PixelTripletHLTGenerator(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC);
0030
0031 ~PixelTripletHLTGenerator() override;
0032
0033 static void fillDescriptions(edm::ParameterSetDescription& desc);
0034 static const char* fillDescriptionsLabel() { return "pixelTripletHLT"; }
0035
0036 void hitTriplets(const TrackingRegion& region,
0037 OrderedHitTriplets& trs,
0038 const edm::Event& ev,
0039 const edm::EventSetup& es,
0040 const SeedingLayerSetsHits::SeedingLayerSet& pairLayers,
0041 const std::vector<SeedingLayerSetsHits::SeedingLayer>& thirdLayers) override;
0042
0043 void hitTriplets(const TrackingRegion& region,
0044 OrderedHitTriplets& trs,
0045 const edm::Event& ev,
0046 const edm::EventSetup& es,
0047 const HitDoublets& doublets,
0048 const std::vector<SeedingLayerSetsHits::SeedingLayer>& thirdLayers,
0049 std::vector<int>* tripletLastLayerIndex,
0050 LayerCacheType& layerCache);
0051
0052 void hitTriplets(const TrackingRegion& region,
0053 OrderedHitTriplets& result,
0054 const edm::EventSetup& es,
0055 const HitDoublets& doublets,
0056 const RecHitsSortedInPhi** thirdHitMap,
0057 const std::vector<const DetLayer*>& thirdLayerDetLayer,
0058 const int nThirdLayers) override;
0059
0060 void hitTriplets(const TrackingRegion& region,
0061 OrderedHitTriplets& result,
0062 const edm::EventSetup& es,
0063 const HitDoublets& doublets,
0064 const RecHitsSortedInPhi** thirdHitMap,
0065 const std::vector<const DetLayer*>& thirdLayerDetLayer,
0066 const int nThirdLayers,
0067 std::vector<int>* tripletLastLayerIndex);
0068
0069 private:
0070 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> fieldToken_;
0071 edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> msmakerToken_;
0072 const bool useFixedPreFiltering;
0073 const float extraHitRZtolerance;
0074 const float extraHitRPhitolerance;
0075 const bool useMScat;
0076 const bool useBend;
0077 const float dphi;
0078 std::unique_ptr<SeedComparitor> theComparitor;
0079 };
0080 #endif