66 std::vector<int> positionDT;
67 std::vector<int> positionCSC;
68 std::vector<TrackingRecHit*> my4DTrack;
82 int NumberOfDTSegment = 0;
84 for (segmentDT = DTSegments->begin(); segmentDT != DTSegments->end(); ++segmentDT) {
86 bool isNewChamber =
true;
89 for (std::vector<int>::iterator positionIt = positionDT.begin(); positionIt != positionDT.end(); positionIt++) {
91 if (NumberOfDTSegment == *positionIt)
96 for (std::vector<std::vector<int> >::iterator collect =
indexCollectionDT.begin();
100 for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
103 if (NumberOfDTSegment == *positionIt)
104 isNewChamber =
false;
110 DTChamberId myChamber((*segmentDT).geographicalId().rawId());
112 if (myLayer.wheel() == myChamber.wheel() && myLayer.station() == myChamber.station() &&
113 myLayer.sector() == myChamber.sector()) {
115 positionDT.push_back(NumberOfDTSegment);
116 const GeomDet* DTgeomDet = theTrackingGeometry->
idToDet(myChamber);
117 SelectedSegments.push_back(
130 int NumberOfCSCSegment = 0;
132 for (segmentCSC = CSCSegments->begin(); segmentCSC != CSCSegments->end(); segmentCSC++) {
134 bool isNewChamber =
true;
136 for (std::vector<int>::iterator positionIt = positionCSC.begin(); positionIt != positionCSC.end();
139 if (NumberOfCSCSegment == *positionIt)
140 isNewChamber =
false;
147 for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
150 if (NumberOfCSCSegment == *positionIt)
151 isNewChamber =
false;
156 CSCDetId myChamber((*segmentCSC).geographicalId().rawId());
158 if (myLayer.chamberId() == myChamber.chamberId()) {
160 positionCSC.push_back(NumberOfCSCSegment);
161 const GeomDet* CSCgeomDet = theTrackingGeometry->
idToDet(myChamber);
162 SelectedSegments.push_back(
166 NumberOfCSCSegment++;
174 if (TrackRefitterType ==
"CosmicLike") {
175 std::reverse(SelectedSegments.begin(), SelectedSegments.end());
T getParameter(std::string const &) const
edm::InputTag theCSCSegmentLabel
virtual ~SegmentToTrackAssociator()
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits)...
edm::InputTag theDTSegmentLabel
constexpr uint32_t rawId() const
get the raw id
intDVector indexCollectionCSC
C::const_iterator const_iterator
constant access iterator type
intDVector indexCollectionDT
T const * get() const
Returns C++ pointer to the item.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MuonTransientTrackingRecHit::MuonRecHitContainer associate(const edm::Event &, const edm::EventSetup &, const reco::Track &, std::string)
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
const GeomDet * idToDet(DetId) const override
DetId geographicalId() const
virtual SubDetector subDetector() const
Which subdetector.
static MuonRecHitPointer specificBuild(const GeomDet *geom, const TrackingRecHit *rh)
std::vector< MuonRecHitPointer > MuonRecHitContainer
SegmentToTrackAssociator(const edm::ParameterSet &)