RecoTracker
TkSeedingLayers
src
HitExtractorSTRP.h
Go to the documentation of this file.
1
#ifndef RecoTracker_TkSeedingLayers_HitExtractorSTRP_H
2
#define RecoTracker_TkSeedingLayers_HitExtractorSTRP_H
3
4
#include "
DataFormats/TrackerCommon/interface/TrackerDetSide.h
"
5
#include "
FWCore/Utilities/interface/InputTag.h
"
6
#include "
HitExtractor.h
"
7
8
#include "
DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h
"
9
#include "
DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h
"
10
#include "
DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h
"
11
#include "
DataFormats/TrackerRecHit2D/interface/VectorHit.h
"
12
#include "
DataFormats/TrackerCommon/interface/TrackerTopology.h
"
13
#include "
Geometry/Records/interface/TrackerTopologyRcd.h
"
14
15
#include <vector>
16
#include <tuple>
17
class
DetLayer
;
18
19
namespace
edm
{
20
template
<
typename
T>
21
class
ContainerMask
;
22
}
23
24
namespace
ctfseeding
{
25
26
class
HitExtractorSTRP
final :
public
HitExtractor
{
27
public
:
28
typedef
SiStripRecHit2D::ClusterRef
SiStripClusterRef
;
29
30
HitExtractorSTRP
(
GeomDetEnumerators::SubDetector
subdet,
31
TrackerDetSide
side,
32
int
idLayer,
33
float
iminGoodCharge,
34
edm::ConsumesCollector
& iC);
35
~HitExtractorSTRP
()
override
{}
36
37
HitExtractor::Hits
hits
(
const
TkTransientTrackingRecHitBuilder
& ttrhBuilder,
38
const
edm::Event
&,
39
const
edm::EventSetup
&)
const override
;
40
HitExtractorSTRP
*
clone
()
const override
{
return
new
HitExtractorSTRP
(*
this
); }
41
42
void
useMatchedHits
(
const
edm::InputTag
&
m
,
edm::ConsumesCollector
& iC) {
43
hasMatchedHits
=
true
;
44
theMatchedHits
= iC.
consumes
<
SiStripMatchedRecHit2DCollection
>(
m
);
45
}
46
void
useRPhiHits
(
const
edm::InputTag
&
m
,
edm::ConsumesCollector
& iC) {
47
hasRPhiHits
=
true
;
48
theRPhiHits
= iC.
consumes
<
SiStripRecHit2DCollection
>(
m
);
49
}
50
void
useStereoHits
(
const
edm::InputTag
&
m
,
edm::ConsumesCollector
& iC) {
51
hasStereoHits
=
true
;
52
theStereoHits
= iC.
consumes
<
SiStripRecHit2DCollection
>(
m
);
53
}
54
55
void
useVectorHits
(
const
edm::InputTag
&
m
,
edm::ConsumesCollector
& iC) {
56
hasVectorHits
=
true
;
57
theVectorHits
= iC.
consumes
<
VectorHitCollection
>(
m
);
58
}
59
void
useRingSelector
(
int
minRing
,
int
maxRing
);
60
void
useSimpleRphiHitsCleaner
(
bool
use) {
hasSimpleRphiHitsCleaner
= use; }
61
62
void
cleanedOfClusters
(
const
TkTransientTrackingRecHitBuilder
& ttrhBuilder,
63
const
edm::Event
&
ev
,
64
HitExtractor::Hits
&
hits
,
65
bool
matched
,
66
unsigned
int
cleanFrom = 0)
const
;
67
68
std::pair<bool, ProjectedSiStripRecHit2D*>
skipThis
(
69
const
TkTransientTrackingRecHitBuilder
& ttrhBuilder,
70
TkHitRef
matched
,
71
edm::Handle
<
edm::ContainerMask
<
edmNew::DetSetVector<SiStripCluster>
> >& stripClusterMask)
const
;
72
73
bool
skipThis
(
DetId
id
,
74
OmniClusterRef
const
& clus,
75
edm::Handle
<
edm::ContainerMask
<
edmNew::DetSetVector<SiStripCluster>
> >& stripClusterMask)
const
;
76
77
void
setNoProjection
() {
failProjection
=
true
; }
78
void
setMinAbsZ
(
double
minZToSet) {
minAbsZ
= minZToSet; }
79
80
bool
useRingSelector
()
const
{
return
hasRingSelector
; }
81
std::tuple<int, int>
getMinMaxRing
()
const
{
return
std::make_tuple(
theMinRing
,
theMaxRing
); }
82
83
private
:
84
bool
ringRange
(
int
ring
)
const
;
85
86
typedef
edm::ContainerMask<edmNew::DetSetVector<SiStripCluster>
>
SkipClustersCollection
;
87
typedef
edm::ContainerMask<Phase2TrackerCluster1DCollectionNew>
SkipPhase2ClustersCollection
;
88
void
useSkipClusters_
(
const
edm::InputTag
&
m
,
edm::ConsumesCollector
& iC)
override
;
89
90
private
:
91
const
GeomDetEnumerators::SubDetector
theLayerSubDet
;
92
TrackerDetSide
theSide
;
93
int
theIdLayer
;
94
double
minAbsZ
;
95
int
theMinRing
,
theMaxRing
;
96
edm::EDGetTokenT<SkipClustersCollection>
theSkipClusters
;
97
edm::EDGetTokenT<SkipPhase2ClustersCollection>
theSkipPhase2Clusters
;
98
edm::EDGetTokenT<SiStripMatchedRecHit2DCollection>
theMatchedHits
;
99
edm::EDGetTokenT<SiStripRecHit2DCollection>
theRPhiHits
;
100
edm::EDGetTokenT<SiStripRecHit2DCollection>
theStereoHits
;
101
edm::EDGetTokenT<VectorHitCollection>
theVectorHits
;
102
edm::ESGetToken<TrackerTopology, TrackerTopologyRcd>
theTtopo
;
103
bool
hasMatchedHits
;
104
bool
hasRPhiHits
;
105
bool
hasStereoHits
;
106
bool
hasVectorHits
;
107
bool
hasRingSelector
;
108
bool
hasSimpleRphiHitsCleaner
;
109
bool
failProjection
;
110
};
111
112
}
// namespace ctfseeding
113
#endif
SiStripRecHit2DCollection.h
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition:
ConsumesCollector.h:55
makeMEIFBenchmarkPlots.ev
ev
Definition:
makeMEIFBenchmarkPlots.py:55
ctfseeding::HitExtractorSTRP::hasSimpleRphiHitsCleaner
bool hasSimpleRphiHitsCleaner
Definition:
HitExtractorSTRP.h:108
ctfseeding::HitExtractorSTRP::getMinMaxRing
std::tuple< int, int > getMinMaxRing() const
Definition:
HitExtractorSTRP.h:81
ctfseeding::HitExtractorSTRP::clone
HitExtractorSTRP * clone() const override
Definition:
HitExtractorSTRP.h:40
ctfseeding::HitExtractorSTRP::theSkipPhase2Clusters
edm::EDGetTokenT< SkipPhase2ClustersCollection > theSkipPhase2Clusters
Definition:
HitExtractorSTRP.h:97
edm::ContainerMask
Definition:
ContainerMask.h:36
muonTagProbeFilters_cff.matched
matched
Definition:
muonTagProbeFilters_cff.py:62
ctfseeding::HitExtractor::Hits
std::vector< HitPointer > Hits
Definition:
HitExtractor.h:28
ctfseeding::HitExtractorSTRP::theMaxRing
int theMaxRing
Definition:
HitExtractorSTRP.h:95
ctfseeding::HitExtractorSTRP::useStereoHits
void useStereoHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
Definition:
HitExtractorSTRP.h:50
edm::Ref
Definition:
AssociativeIterator.h:58
HitExtractor.h
ctfseeding::HitExtractorSTRP::useMatchedHits
void useMatchedHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
Definition:
HitExtractorSTRP.h:42
ctfseeding::HitExtractorSTRP::theTtopo
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTtopo
Definition:
HitExtractorSTRP.h:102
TrackerDetSide
TrackerDetSide
Definition:
TrackerDetSide.h:4
HLT_2022v14_cff.maxRing
maxRing
Definition:
HLT_2022v14_cff.py:30935
edm::Handle
Definition:
AssociativeIterator.h:50
ctfseeding
Definition:
SeedingLayerSetsBuilder.h:23
ctfseeding::HitExtractor
Definition:
HitExtractor.h:23
ctfseeding::HitExtractorSTRP::~HitExtractorSTRP
~HitExtractorSTRP() override
Definition:
HitExtractorSTRP.h:35
SiStripRecHit2D.h
edm::EDGetTokenT
Definition:
EDGetToken.h:33
ctfseeding::HitExtractorSTRP::skipThis
std::pair< bool, ProjectedSiStripRecHit2D * > skipThis(const TkTransientTrackingRecHitBuilder &ttrhBuilder, TkHitRef matched, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask) const
Definition:
HitExtractorSTRP.cc:75
ctfseeding::HitExtractor::TkHitRef
BaseTrackerRecHit const & TkHitRef
Definition:
HitExtractor.h:26
ctfseeding::HitExtractorSTRP::theMatchedHits
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > theMatchedHits
Definition:
HitExtractorSTRP.h:98
ContainerMask
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd >
ctfseeding::HitExtractorSTRP::hasRPhiHits
bool hasRPhiHits
Definition:
HitExtractorSTRP.h:104
ctfseeding::HitExtractorSTRP::theLayerSubDet
const GeomDetEnumerators::SubDetector theLayerSubDet
Definition:
HitExtractorSTRP.h:91
VectorHit.h
GeomDetEnumerators::SubDetector
SubDetector
Definition:
GeomDetEnumerators.h:10
ctfseeding::HitExtractorSTRP::theStereoHits
edm::EDGetTokenT< SiStripRecHit2DCollection > theStereoHits
Definition:
HitExtractorSTRP.h:100
ctfseeding::HitExtractorSTRP::minAbsZ
double minAbsZ
Definition:
HitExtractorSTRP.h:94
ctfseeding::HitExtractorSTRP::hasStereoHits
bool hasStereoHits
Definition:
HitExtractorSTRP.h:105
visualization-live-secondInstance_cfg.m
m
Definition:
visualization-live-secondInstance_cfg.py:80
ctfseeding::HitExtractorSTRP::theMinRing
int theMinRing
Definition:
HitExtractorSTRP.h:95
edmNew::DetSetVector
Definition:
DetSetNew.h:13
ctfseeding::HitExtractorSTRP::hasVectorHits
bool hasVectorHits
Definition:
HitExtractorSTRP.h:106
ctfseeding::HitExtractorSTRP::useRPhiHits
void useRPhiHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
Definition:
HitExtractorSTRP.h:46
edm::EventSetup
Definition:
EventSetup.h:59
DetLayer
Definition:
DetLayer.h:21
ctfseeding::HitExtractorSTRP::hasMatchedHits
bool hasMatchedHits
Definition:
HitExtractorSTRP.h:103
TrackerTopologyRcd.h
ctfseeding::HitExtractorSTRP::SkipClustersCollection
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
Definition:
HitExtractorSTRP.h:86
ctfseeding::HitExtractorSTRP
Definition:
HitExtractorSTRP.h:26
ctfseeding::HitExtractorSTRP::theVectorHits
edm::EDGetTokenT< VectorHitCollection > theVectorHits
Definition:
HitExtractorSTRP.h:101
ctfseeding::HitExtractorSTRP::useVectorHits
void useVectorHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
Definition:
HitExtractorSTRP.h:55
ctfseeding::HitExtractorSTRP::hits
HitExtractor::Hits hits(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &, const edm::EventSetup &) const override
Definition:
HitExtractorSTRP.cc:181
ctfseeding::HitExtractorSTRP::ringRange
bool ringRange(int ring) const
Definition:
HitExtractorSTRP.cc:57
DetId
Definition:
DetId.h:17
TkTransientTrackingRecHitBuilder
Definition:
TkTransientTrackingRecHitBuilder.h:15
ctfseeding::HitExtractorSTRP::useSimpleRphiHitsCleaner
void useSimpleRphiHitsCleaner(bool use)
Definition:
HitExtractorSTRP.h:60
ctfseeding::HitExtractorSTRP::theRPhiHits
edm::EDGetTokenT< SiStripRecHit2DCollection > theRPhiHits
Definition:
HitExtractorSTRP.h:99
OmniClusterRef
Definition:
OmniClusterRef.h:12
ctfseeding::HitExtractorSTRP::HitExtractorSTRP
HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, TrackerDetSide side, int idLayer, float iminGoodCharge, edm::ConsumesCollector &iC)
Definition:
HitExtractorSTRP.cc:23
ctfseeding::HitExtractorSTRP::SkipPhase2ClustersCollection
edm::ContainerMask< Phase2TrackerCluster1DCollectionNew > SkipPhase2ClustersCollection
Definition:
HitExtractorSTRP.h:87
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::InputTag
Definition:
InputTag.h:15
ctfseeding::HitExtractorSTRP::theSide
TrackerDetSide theSide
Definition:
HitExtractorSTRP.h:92
InputTag.h
ctfseeding::HitExtractorSTRP::cleanedOfClusters
void cleanedOfClusters(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &ev, HitExtractor::Hits &hits, bool matched, unsigned int cleanFrom=0) const
Definition:
HitExtractorSTRP.cc:112
ctfseeding::HitExtractorSTRP::theIdLayer
int theIdLayer
Definition:
HitExtractorSTRP.h:93
ctfseeding::HitExtractorSTRP::SiStripClusterRef
SiStripRecHit2D::ClusterRef SiStripClusterRef
Definition:
HitExtractorSTRP.h:28
ctfseeding::HitExtractorSTRP::setMinAbsZ
void setMinAbsZ(double minZToSet)
Definition:
HitExtractorSTRP.h:78
TrackerDetSide.h
TrackerTopology.h
edm::Event
Definition:
Event.h:73
ctfseeding::HitExtractorSTRP::useSkipClusters_
void useSkipClusters_(const edm::InputTag &m, edm::ConsumesCollector &iC) override
Definition:
HitExtractorSTRP.cc:46
relativeConstraints.ring
ring
Definition:
relativeConstraints.py:68
ctfseeding::HitExtractorSTRP::failProjection
bool failProjection
Definition:
HitExtractorSTRP.h:109
ctfseeding::HitExtractorSTRP::hasRingSelector
bool hasRingSelector
Definition:
HitExtractorSTRP.h:107
ctfseeding::HitExtractorSTRP::theSkipClusters
edm::EDGetTokenT< SkipClustersCollection > theSkipClusters
Definition:
HitExtractorSTRP.h:96
SiStripMatchedRecHit2DCollection.h
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
ctfseeding::HitExtractorSTRP::useRingSelector
bool useRingSelector() const
Definition:
HitExtractorSTRP.h:80
HLT_2022v14_cff.minRing
minRing
Definition:
HLT_2022v14_cff.py:30932
ctfseeding::HitExtractorSTRP::setNoProjection
void setNoProjection()
Definition:
HitExtractorSTRP.h:77
Generated for CMSSW Reference Manual by
1.8.14