Go to the documentation of this file.00001 #ifndef PixelTripletLargeTipGenerator_H
00002 #define PixelTripletLargeTipGenerator_H
00003
00010 #include "RecoTracker/TkHitPairs/interface/HitPairGenerator.h"
00011 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGenerator.h"
00012 #include "RecoPixelVertexing/PixelTriplets/interface/CombinedHitTripletGenerator.h"
00013 #include "RecoTracker/TkSeedingLayers/interface/SeedingLayer.h"
00014 #include "FWCore/Framework/interface/EventSetup.h"
00015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00016 #include "RecoPixelVertexing/PixelTriplets/interface/HitTripletGeneratorFromPairAndLayers.h"
00017
00018 #include <utility>
00019 #include <vector>
00020
00021
00022 class PixelTripletLargeTipGenerator : public HitTripletGeneratorFromPairAndLayers {
00023
00024 typedef CombinedHitTripletGenerator::LayerCacheType LayerCacheType;
00025
00026 public:
00027 PixelTripletLargeTipGenerator( const edm::ParameterSet& cfg);
00028
00029 virtual ~PixelTripletLargeTipGenerator() { delete thePairGenerator; }
00030
00031 virtual void init( const HitPairGenerator & pairs,
00032 const std::vector<ctfseeding::SeedingLayer> & layers, LayerCacheType* layerCache);
00033
00034 virtual void hitTriplets( const TrackingRegion& region, OrderedHitTriplets & trs,
00035 const edm::Event & ev, const edm::EventSetup& es);
00036
00037 const HitPairGenerator & pairGenerator() const { return *thePairGenerator; }
00038 const std::vector<ctfseeding::SeedingLayer> & thirdLayers() const { return theLayers; }
00039
00040 private:
00041
00042 bool checkPhiInRange(float phi, float phi1, float phi2) const;
00043 std::pair<float,float> mergePhiRanges(
00044 const std::pair<float,float> &r1, const std::pair<float,float> &r2) const;
00045
00046
00047 private:
00048 HitPairGenerator * thePairGenerator;
00049 std::vector<ctfseeding::SeedingLayer> theLayers;
00050 LayerCacheType * theLayerCache;
00051
00052 bool useFixedPreFiltering;
00053 float extraHitRZtolerance;
00054 float extraHitRPhitolerance;
00055 bool useMScat;
00056 bool useBend;
00057 float dphi;
00058 };
00059 #endif
00060
00061