CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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_;}
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 
81  QuadrupletSeedMerger(const edm::ParameterSet& iConfig, const edm::ParameterSet& seedCreatorConfig, edm::ConsumesCollector& iC);
83 
84  void update(const edm::EventSetup& );
85  //const std::vector<SeedingHitSet> mergeTriplets( const OrderedSeedingHits&, const edm::EventSetup& );
88  std::pair<double,double> calculatePhiEta( SeedingHitSet const& ) const;
89  void printHit( const TrackingRecHit* ) const;
90  void printNtuplet( const SeedingHitSet& ) const;
91  void setMergeTriplets( bool );
92  void setAddRemainingTriplets( bool );
94 
95  private:
96  typedef std::array<SeedingHitSet::ConstRecHitPointer, 4> QuadrupletHits;
97 
99 
100  void mySort(QuadrupletHits& unsortedHits);
101 
102  bool isValidQuadruplet(const QuadrupletHits& quadruplet, const std::vector<SeedMergerPixelLayer>& layers, const TrackerTopology *tTopo) const;
103 
104  // bool isValidQuadruplet( const SeedingHitSet&, const std::vector<SeedMergerPixelLayer>& ) const;
105 
110  std::unique_ptr<SeedCreator> theSeedCreator_;
115 };
edm::ESHandle< TrackerGeometry > theTrackerGeometry_
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
Definition: LayerTriplets.cc:4
std::string getName(void) const
void setTTRHBuilderLabel(std::string)
void printNtuplet(const SeedingHitSet &) const
SeedMergerPixelLayer(const std::string &)
unsigned getLayerNumber(void) const
QuadrupletSeedMerger(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
ctfseeding::SeedingLayerSets theLayerSets_
std::pair< double, double > calculatePhiEta(SeedingHitSet const &) const
PixelSubdetector::SubDetector subdet_
void mySort(QuadrupletHits &unsortedHits)
std::vector< TrajectorySeed > TrajectorySeedCollection
PixelSubdetector::SubDetector getSubdet(void) const
std::array< SeedingHitSet::ConstRecHitPointer, 4 > QuadrupletHits
Definition: DetId.h:18
void update(const edm::EventSetup &)
const OrderedSeedingHits & mergeTriplets(const OrderedSeedingHits &, const edm::EventSetup &)
bool isContainsDetector(const DetId &, const TrackerTopology *tTopo) const
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder_
Side getSide(void) const
void printHit(const TrackingRecHit *) const
bool isValidQuadruplet(const QuadrupletHits &quadruplet, const std::vector< SeedMergerPixelLayer > &layers, const TrackerTopology *tTopo) const
std::unique_ptr< SeedCreator > theSeedCreator_
SeedingLayerSetsBuilder theLayerBuilder_
SeedMergerPixelLayer::Side side_
bool isValidName(const std::string &)
std::vector< std::vector< SeedingLayer > > SeedingLayerSets