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 
11 
13 //#include "RecoPixelVertexing/PixelTriplets/plugins/LayerTriplets.h"
14 
19 
21 
24 
31 
34 
40 
42 
43 class TrackerTopology;
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 
82 
83  void update(const edm::EventSetup& );
84  //const std::vector<SeedingHitSet> mergeTriplets( const OrderedSeedingHits&, const edm::EventSetup& );
87  bool isEqual( const TrackingRecHit*, const TrackingRecHit* ) const;
88  std::pair<double,double> calculatePhiEta( SeedingHitSet const& ) const;
89  void printHit( const TrackingRecHit* ) const;
91  void printNtuplet( const SeedingHitSet& ) const;
93  void setMergeTriplets( bool );
94  void setAddRemainingTriplets( bool );
96 
97  private:
98 
99  std::vector<TransientTrackingRecHit::ConstRecHitPointer> mySort(TransientTrackingRecHit::ConstRecHitPointer &h1,
103 
104 
105  bool isValidQuadruplet( std::vector<TransientTrackingRecHit::ConstRecHitPointer> &quadruplet, const std::vector<SeedMergerPixelLayer>& layers,
106  const TrackerTopology *tTopo) const;
107 
108  // bool isValidQuadruplet( const SeedingHitSet&, const std::vector<SeedMergerPixelLayer>& ) const;
109 
110 bool isTripletsShareHitsOnLayers( const SeedingHitSet& firstTriplet, const SeedingHitSet& secondTriplet,
111  const SeedMergerPixelLayer &share1, const SeedMergerPixelLayer &share2,
112  std::pair<TransientTrackingRecHit::ConstRecHitPointer,TransientTrackingRecHit::ConstRecHitPointer>& hits,
113  const TrackerTopology *tTopo) const;
114 
115 //bool isTripletsShareHitsOnLayers( const SeedingHitSet&, const SeedingHitSet&,
116 // const std::pair<SeedMergerPixelLayer, SeedMergerPixelLayer>&,
117 // std::pair<TransientTrackingRecHit::ConstRecHitPointer,TransientTrackingRecHit::ConstRecHitPointer>& ) const;
118 //
119 // bool isMergeableHitsInTriplets( const SeedingHitSet&, const SeedingHitSet&,
120 // const std::pair<SeedMergerPixelLayer, SeedMergerPixelLayer>&,
121 // std::pair<TransientTrackingRecHit::ConstRecHitPointer,TransientTrackingRecHit::ConstRecHitPointer>& ) const;
122 
123 bool isMergeableHitsInTriplets( const SeedingHitSet& firstTriplet, const SeedingHitSet& secondTriplet,
124  const SeedMergerPixelLayer &nonShared1, const SeedMergerPixelLayer &nonShared2,
125  std::pair<TransientTrackingRecHit::ConstRecHitPointer,TransientTrackingRecHit::ConstRecHitPointer>& hits,
126  const TrackerTopology *tTopo) const;
127 
128 
129 
138 };
edm::ESHandle< TrackerGeometry > theTrackerGeometry_
std::string getName(void) const
void setTTRHBuilderLabel(std::string)
void printNtuplet(const SeedingHitSet &) const
SeedMergerPixelLayer(const std::string &)
unsigned getLayerNumber(void) const
ctfseeding::SeedingLayerSets theLayerSets_
bool isEqual(const TrackingRecHit *, const TrackingRecHit *) const
std::pair< double, double > calculatePhiEta(SeedingHitSet const &) const
PixelSubdetector::SubDetector subdet_
std::vector< TrajectorySeed > TrajectorySeedCollection
PixelSubdetector::SubDetector getSubdet(void) const
void setLayerListName(std::string)
bool isMergeableHitsInTriplets(const SeedingHitSet &firstTriplet, const SeedingHitSet &secondTriplet, const SeedMergerPixelLayer &nonShared1, const SeedMergerPixelLayer &nonShared2, std::pair< TransientTrackingRecHit::ConstRecHitPointer, TransientTrackingRecHit::ConstRecHitPointer > &hits, const TrackerTopology *tTopo) const
Definition: DetId.h:20
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
std::vector< TransientTrackingRecHit::ConstRecHitPointer > mySort(TransientTrackingRecHit::ConstRecHitPointer &h1, TransientTrackingRecHit::ConstRecHitPointer &h2, TransientTrackingRecHit::ConstRecHitPointer &h3, TransientTrackingRecHit::ConstRecHitPointer &h4)
void printHit(const TrackingRecHit *) const
bool isValidQuadruplet(std::vector< TransientTrackingRecHit::ConstRecHitPointer > &quadruplet, const std::vector< SeedMergerPixelLayer > &layers, const TrackerTopology *tTopo) const
SeedMergerPixelLayer::Side side_
bool isValidName(const std::string &)
bool isTripletsShareHitsOnLayers(const SeedingHitSet &firstTriplet, const SeedingHitSet &secondTriplet, const SeedMergerPixelLayer &share1, const SeedMergerPixelLayer &share2, std::pair< TransientTrackingRecHit::ConstRecHitPointer, TransientTrackingRecHit::ConstRecHitPointer > &hits, const TrackerTopology *tTopo) const
std::vector< std::vector< SeedingLayer > > SeedingLayerSets