CMS 3D CMS Logo

QuadrupletSeedMerger.h
Go to the documentation of this file.
1 
2 
3 #include <memory>
4 #include <vector>
5 #include <functional>
6 #include <array>
7 
12 
14 //#include "RecoPixelVertexing/PixelTriplets/plugins/LayerTriplets.h"
15 
20 
22 
25 
31 
34 
38 
40 
41 class TrackerTopology;
42 class SeedCreator;
43 namespace edm { class ConsumesCollector; }
44 
50 
51  public:
52  enum Side{ Minus=1, Plus=2, Undefined, SideError }; // Changed to correspond with PXFDetId ...
53 
55  unsigned getLayerNumber( void ) const { return layer_; }
56  Side getSide( void ) const { return side_;}
57  PixelSubdetector::SubDetector getSubdet( void ) const { return subdet_; }
58  std::string getName( void ) const { return name_; }
59  bool isContainsDetector( const DetId&, const TrackerTopology *tTopo ) const;
60 
61  private:
62  bool isValidName( const std::string& );
63  bool isValid_;
66  unsigned layer_;
68 
69 };
70 
71 
72 
77 
78  public:
79 
82  QuadrupletSeedMerger(const edm::ParameterSet& iConfig, const edm::ParameterSet& seedCreatorConfig, edm::ConsumesCollector& iC);
84 
85  void update(const edm::EventSetup& );
86  //const std::vector<SeedingHitSet> mergeTriplets( const OrderedSeedingHits&, const edm::EventSetup& );
87  const OrderedSeedingHits& mergeTriplets( const OrderedSeedingHits&, const edm::EventSetup& );
88  const TrajectorySeedCollection mergeTriplets( const TrajectorySeedCollection&, const TrackingRegion&, const edm::EventSetup&);
89  std::pair<double,double> calculatePhiEta( SeedingHitSet const& ) const;
90  void printHit( const TrackingRecHit* ) const;
91  void printNtuplet( const SeedingHitSet& ) const;
92  void setMergeTriplets( bool );
93  void setAddRemainingTriplets( bool );
94  void setTTRHBuilderLabel( std::string );
95 
96  private:
97  typedef std::array<SeedingHitSet::ConstRecHitPointer, 4> QuadrupletHits;
98 
100 
101  void mySort(QuadrupletHits& unsortedHits);
102 
103  bool isValidQuadruplet(const QuadrupletHits& quadruplet, const std::vector<SeedMergerPixelLayer>& layers, const TrackerTopology *tTopo) const;
104 
105  // bool isValidQuadruplet( const SeedingHitSet&, const std::vector<SeedMergerPixelLayer>& ) const;
106 
111  std::unique_ptr<SeedCreator> theSeedCreator_;
116 };
edm::ESHandle< TrackerGeometry > theTrackerGeometry_
static const char layer_[]
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
std::string getName(void) const
QuadrupletSeedMerger(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
unsigned getLayerNumber(void) const
ctfseeding::SeedingLayerSets theLayerSets_
PixelSubdetector::SubDetector subdet_
std::vector< TrajectorySeed > TrajectorySeedCollection
PixelSubdetector::SubDetector getSubdet(void) const
std::array< SeedingHitSet::ConstRecHitPointer, 4 > QuadrupletHits
Definition: DetId.h:18
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder_
Side getSide(void) const
HLT enums.
#define update(a, b)
std::unique_ptr< SeedCreator > theSeedCreator_
SeedingLayerSetsBuilder theLayerBuilder_
SeedMergerPixelLayer::Side side_
std::vector< std::vector< SeedingLayer > > SeedingLayerSets