CMS 3D CMS Logo

DTCombinatorialExtendedPatternReco.h
Go to the documentation of this file.
1 #ifndef DTSegment_DTCombinatorialExtendedPatternReco_h
2 #define DTSegment_DTCombinatorialExtendedPatternReco_h
3 
13 /* Base Class Headers */
15 
16 /* Collaborating Class Declarations */
17 namespace edm {
18  class ParameterSet;
19  class EventSetup;
20  // class ESHandle;
21 } // namespace edm
22 class DTSegmentUpdator;
23 class DTSegmentCleaner;
24 class DTHitPairForFit;
25 class DTSegmentCand;
28 
29 /* C++ Headers */
30 #include <vector>
31 #include <deque>
32 #include <utility>
33 
37 
38 /* ====================================================================== */
39 
40 /* Class DTCombinatorialExtendedPatternReco Interface */
41 
43 public:
46 
49 
50  /* Operations */
51 
54  const std::vector<DTRecHit1DPair>& hits) override;
55 
57  std::string algoName() const override { return theAlgoName; }
58 
61  void setES(const edm::EventSetup& setup) override;
62 
63  // pass clusters to algo
64  void setClusters(const std::vector<DTSLRecCluster>& clusters);
65 
66 protected:
67 private:
68  // create the DTHitPairForFit from the pairs for easy use
69  std::vector<std::shared_ptr<DTHitPairForFit>> initHits(const DTSuperLayer* sl,
70  const std::vector<DTRecHit1DPair>& hits);
71 
72  // search for candidate, starting from pairs of hits in different layers
73  std::vector<DTSegmentCand*> buildSegments(const DTSuperLayer* sl,
74  const std::vector<std::shared_ptr<DTHitPairForFit>>& hits);
75 
76  // find all the hits compatible with the candidate
77  std::vector<DTSegmentCand::AssPoint> findCompatibleHits(const LocalPoint& pos,
78  const LocalVector& dir,
79  const std::vector<std::shared_ptr<DTHitPairForFit>>& hits);
80 
81  // build segments from hits collection
82  DTSegmentExtendedCand* buildBestSegment(std::vector<DTSegmentCand::AssPoint>& assHits, const DTSuperLayer* sl);
83 
84  bool checkDoubleCandidates(std::vector<DTSegmentCand*>& segs, DTSegmentCand* seg);
85 
88  void buildPointsCollection(std::vector<DTSegmentCand::AssPoint>& points,
89  std::deque<std::shared_ptr<DTHitPairForFit>>& pointsNoLR,
90  std::vector<DTSegmentCand*>& candidates,
91  const DTSuperLayer* sl);
92 
94  std::vector<DTSegmentExtendedCand*> extendCandidates(std::vector<DTSegmentCand*>& candidates, const DTSuperLayer* sl);
95 
96  bool closeSL(const DTSuperLayerId& id1, const DTSuperLayerId& id2);
97 
98 private:
100  unsigned int theMaxAllowedHits;
103  bool debug;
104  bool usePairs;
105  DTSegmentUpdator* theUpdator; // the updator and fitter
106  DTSegmentCleaner* theCleaner; // the cleaner
107 
109 
110 private:
111  std::vector<std::vector<int>> theTriedPattern;
112  std::vector<DTSLRecCluster> theClusters;
113 };
114 #endif // DTSegment_DTCombinatorialExtendedPatternReco_h
Vector3DBase< float, LocalTag >
DTSuperLayerId
Definition: DTSuperLayerId.h:12
DTCombinatorialExtendedPatternReco::theTriedPattern
std::vector< std::vector< int > > theTriedPattern
Definition: DTCombinatorialExtendedPatternReco.h:111
DTRecSegment2DBaseAlgo.h
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
ESHandle.h
HLT_FULL_cff.points
points
Definition: HLT_FULL_cff.py:21469
DTCombinatorialExtendedPatternReco::initHits
std::vector< std::shared_ptr< DTHitPairForFit > > initHits(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits)
Definition: DTCombinatorialExtendedPatternReco.cc:86
DTCombinatorialExtendedPatternReco::theClusters
std::vector< DTSLRecCluster > theClusters
Definition: DTCombinatorialExtendedPatternReco.h:112
edm
HLT enums.
Definition: AlignableModifier.h:19
globals_cff.id1
id1
Definition: globals_cff.py:33
pos
Definition: PixelAliasList.h:18
DTCombinatorialExtendedPatternReco::extendCandidates
std::vector< DTSegmentExtendedCand * > extendCandidates(std::vector< DTSegmentCand * > &candidates, const DTSuperLayer *sl)
Definition: DTCombinatorialExtendedPatternReco.cc:403
DTSuperLayer
Definition: DTSuperLayer.h:24
DTCombinatorialExtendedPatternReco::~DTCombinatorialExtendedPatternReco
~DTCombinatorialExtendedPatternReco() override
Destructor.
Definition: DTCombinatorialExtendedPatternReco.cc:47
DTCombinatorialExtendedPatternReco::findCompatibleHits
std::vector< DTSegmentCand::AssPoint > findCompatibleHits(const LocalPoint &pos, const LocalVector &dir, const std::vector< std::shared_ptr< DTHitPairForFit >> &hits)
Definition: DTCombinatorialExtendedPatternReco.cc:215
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
DTCombinatorialExtendedPatternReco::closeSL
bool closeSL(const DTSuperLayerId &id1, const DTSuperLayerId &id2)
Definition: DTCombinatorialExtendedPatternReco.cc:478
DTSegmentUpdator
Definition: DTSegmentUpdator.h:43
DTSegmentCand.h
DTSegmentCleaner
Definition: DTSegmentCleaner.h:31
DTCombinatorialExtendedPatternReco::theDTGeometry
edm::ESHandle< DTGeometry > theDTGeometry
Definition: DTCombinatorialExtendedPatternReco.h:108
DTCombinatorialExtendedPatternReco::theAlgoName
std::string theAlgoName
Definition: DTCombinatorialExtendedPatternReco.h:99
DTCombinatorialExtendedPatternReco::theMaxAllowedHits
unsigned int theMaxAllowedHits
Definition: DTCombinatorialExtendedPatternReco.h:100
edm::ESHandle< DTGeometry >
DTCombinatorialExtendedPatternReco::buildBestSegment
DTSegmentExtendedCand * buildBestSegment(std::vector< DTSegmentCand::AssPoint > &assHits, const DTSuperLayer *sl)
Definition: DTCombinatorialExtendedPatternReco.cc:271
DTSegmentCand
Definition: DTSegmentCand.h:34
DTCombinatorialExtendedPatternReco::usePairs
bool usePairs
Definition: DTCombinatorialExtendedPatternReco.h:104
Point3DBase< float, LocalTag >
DTCombinatorialExtendedPatternReco::reconstruct
edm::OwnVector< DTSLRecSegment2D > reconstruct(const DTSuperLayer *sl, const std::vector< DTRecHit1DPair > &hits) override
this function is called in the producer
Definition: DTCombinatorialExtendedPatternReco.cc:50
DTGeometry.h
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
edm::ParameterSet
Definition: ParameterSet.h:47
DTCombinatorialExtendedPatternReco::theCleaner
DTSegmentCleaner * theCleaner
Definition: DTCombinatorialExtendedPatternReco.h:106
ParameterSet
Definition: Functions.h:16
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::EventSetup
Definition: EventSetup.h:58
DTCombinatorialExtendedPatternReco::setClusters
void setClusters(const std::vector< DTSLRecCluster > &clusters)
Definition: DTCombinatorialExtendedPatternReco.cc:84
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
DTCombinatorialExtendedPatternReco::debug
bool debug
Definition: DTCombinatorialExtendedPatternReco.h:103
DTSLRecCluster.h
DTCombinatorialExtendedPatternReco::buildSegments
std::vector< DTSegmentCand * > buildSegments(const DTSuperLayer *sl, const std::vector< std::shared_ptr< DTHitPairForFit >> &hits)
Definition: DTCombinatorialExtendedPatternReco.cc:95
DTCombinatorialExtendedPatternReco::theAlphaMaxTheta
double theAlphaMaxTheta
Definition: DTCombinatorialExtendedPatternReco.h:101
DTCombinatorialExtendedPatternReco::theAlphaMaxPhi
double theAlphaMaxPhi
Definition: DTCombinatorialExtendedPatternReco.h:102
HLT_FULL_cff.candidates
candidates
Definition: HLT_FULL_cff.py:55017
DTCombinatorialExtendedPatternReco::buildPointsCollection
void buildPointsCollection(std::vector< DTSegmentCand::AssPoint > &points, std::deque< std::shared_ptr< DTHitPairForFit >> &pointsNoLR, std::vector< DTSegmentCand * > &candidates, const DTSuperLayer *sl)
Definition: DTCombinatorialExtendedPatternReco.cc:341
DTCombinatorialExtendedPatternReco::DTCombinatorialExtendedPatternReco
DTCombinatorialExtendedPatternReco(const edm::ParameterSet &pset)
Constructor.
Definition: DTCombinatorialExtendedPatternReco.cc:34
DTHitPairForFit
Definition: DTHitPairForFit.h:31
DTCombinatorialExtendedPatternReco::theUpdator
DTSegmentUpdator * theUpdator
Definition: DTCombinatorialExtendedPatternReco.h:105
EventSetup
globals_cff.id2
id2
Definition: globals_cff.py:34
DTCombinatorialExtendedPatternReco
Definition: DTCombinatorialExtendedPatternReco.h:42
DTCombinatorialExtendedPatternReco::checkDoubleCandidates
bool checkDoubleCandidates(std::vector< DTSegmentCand * > &segs, DTSegmentCand *seg)
Definition: DTCombinatorialExtendedPatternReco.cc:396
DTCombinatorialExtendedPatternReco::algoName
std::string algoName() const override
return the algo name
Definition: DTCombinatorialExtendedPatternReco.h:57
DTSegmentExtendedCand
Definition: DTSegmentExtendedCand.h:29
DTCombinatorialExtendedPatternReco::setES
void setES(const edm::EventSetup &setup) override
Definition: DTCombinatorialExtendedPatternReco.cc:78
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
DTRecSegment2DBaseAlgo
Definition: DTRecSegment2DBaseAlgo.h:32
edm::OwnVector
Definition: OwnVector.h:24
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23