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 
40 
42 
43 class TrackerTopology;
44 class SeedCreator;
45 namespace edm { class ConsumesCollector; }
46 
52 
53  public:
54  enum Side{ Minus=1, Plus=2, Undefined, SideError }; // Changed to correspond with PXFDetId ...
55 
57  unsigned getLayerNumber( void ) const { return layer_; }
58  Side getSide( void ) const { return side_;}
60  std::string getName( void ) const { return name_; }
61  bool isContainsDetector( const DetId&, const TrackerTopology *tTopo ) const;
62 
63  private:
64  bool isValidName( const std::string& );
65  bool isValid_;
68  unsigned layer_;
70 
71 };
72 
73 
74 
79 
80  public:
81 
83  QuadrupletSeedMerger(const edm::ParameterSet& iConfig, const edm::ParameterSet& seedCreatorConfig, edm::ConsumesCollector& iC);
85 
86  void update(const edm::EventSetup& );
87  //const std::vector<SeedingHitSet> mergeTriplets( const OrderedSeedingHits&, const edm::EventSetup& );
90  std::pair<double,double> calculatePhiEta( SeedingHitSet const& ) const;
91  void printHit( const TrackingRecHit* ) const;
92  void printNtuplet( const SeedingHitSet& ) const;
93  void setMergeTriplets( bool );
94  void setAddRemainingTriplets( bool );
96 
97  private:
98  typedef std::array<SeedingHitSet::ConstRecHitPointer, 4> QuadrupletHits;
99 
101 
102  void mySort(QuadrupletHits& unsortedHits);
103 
104  bool isValidQuadruplet(const QuadrupletHits& quadruplet, const std::vector<SeedMergerPixelLayer>& layers, const TrackerTopology *tTopo) const;
105 
106  // bool isValidQuadruplet( const SeedingHitSet&, const std::vector<SeedMergerPixelLayer>& ) const;
107 
112  std::unique_ptr<SeedCreator> theSeedCreator_;
117 };
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