Skip to content

Commit 0be0752

Browse files
authored
Merge pull request #30133 from guitargeek/TrajectorySeed_recHits_followup
Remove invalid usage of TrajectorySeed::recHits()
2 parents c6ab457 + 38b49a2 commit 0be0752

File tree

8 files changed

+37
-122
lines changed

8 files changed

+37
-122
lines changed

RecoEgamma/EgammaPhotonAlgos/src/ConversionSeedFinder.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// Geometry
66
#include "Geometry/Records/interface/IdealGeometryRecord.h"
77
//
8-
#include "RecoTracker/MeasurementDet/interface/StartingLayerFinder.h"
98
#include "RecoTracker/MeasurementDet/interface/LayerCollector.h"
109
//
1110

@@ -111,9 +110,7 @@ void ConversionSeedFinder::findLayers(const FreeTrajectoryState& traj) {
111110

112111
StraightLinePropagator prop(&(*theMF_), alongMomentum);
113112

114-
StartingLayerFinder starter(&prop, this->getMeasurementTracker());
115-
116-
LayerCollector collector(theNavigationSchool_, &prop, &starter, 5., 5.);
113+
LayerCollector collector(theNavigationSchool_, &prop, this->getMeasurementTracker(), 5., 5.);
117114

118115
theLayerList_ = collector.allLayers(traj);
119116

RecoMuon/TrackerSeedGenerator/plugins/TSGForRoadSearch.cc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "RecoMuon/TrackerSeedGenerator/plugins/TSGForRoadSearch.h"
22

33
#include <Geometry/Records/interface/GlobalTrackingGeometryRecord.h>
4-
//#include <RecoTracker/Record/interface/TrackerRecoGeometryRecord.h>
54
#include <RecoTracker/Record/interface/CkfComponentsRecord.h>
65
#include <MagneticField/Records/interface/IdealMagneticFieldRecord.h>
76
#include <TrackingTools/Records/interface/TrackingComponentsRecord.h>
@@ -15,7 +14,6 @@
1514

1615
#include <RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h>
1716

18-
#include "RecoTracker/MeasurementDet/interface/StartingLayerFinder.h"
1917
#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
2018

2119
#include "RecoMuon/TrackingTools/interface/MuonServiceProxy.h"

RecoTracker/MeasurementDet/interface/LayerCollector.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,27 @@ class LayerCollector {
2525
public:
2626
LayerCollector(NavigationSchool const* aSchool,
2727
const Propagator* aPropagator,
28-
const StartingLayerFinder* aFinder,
28+
const MeasurementTracker* tracker,
2929
float dr,
3030
float dz)
31-
: theSchool(aSchool), thePropagator(aPropagator), theStartingLayerFinder(aFinder), theDeltaR(dr), theDeltaZ(dz) {}
32-
33-
~LayerCollector() {}
31+
: theSchool(aSchool),
32+
thePropagator(aPropagator),
33+
theStartingLayerFinder{*aPropagator, *tracker},
34+
theDeltaR(dr),
35+
theDeltaZ(dz) {}
3436

3537
std::vector<const DetLayer*> allLayers(const FTS& aFts) const;
3638
std::vector<const BarrelDetLayer*> barrelLayers(const FTS& aFts) const;
3739
std::vector<const ForwardDetLayer*> forwardLayers(const FTS& aFts) const;
3840

3941
const Propagator* propagator() const { return thePropagator; }
40-
const StartingLayerFinder* finder() const { return theStartingLayerFinder; }
4142
float deltaR() const { return theDeltaR; }
4243
float deltaZ() const { return theDeltaZ; }
4344

4445
private:
4546
NavigationSchool const* theSchool;
4647
const Propagator* thePropagator;
47-
const StartingLayerFinder* theStartingLayerFinder;
48+
const StartingLayerFinder theStartingLayerFinder;
4849
float theDeltaR;
4950
float theDeltaZ;
5051

RecoTracker/MeasurementDet/interface/StartingLayerFinder.h

Lines changed: 10 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -22,52 +22,29 @@
2222
* have a DetLayer
2323
*/
2424

25-
class PTrajectoryStateOnDet;
26-
2725
class StartingLayerFinder {
28-
private:
29-
typedef FreeTrajectoryState FTS;
30-
typedef TrajectoryStateOnSurface TSOS;
31-
typedef std::pair<float, float> Range;
32-
3326
public:
34-
StartingLayerFinder(const Propagator* aPropagator, const MeasurementTracker* tracker)
35-
:
36-
37-
thePropagator(aPropagator),
27+
StartingLayerFinder(Propagator const& aPropagator, MeasurementTracker const& tracker)
28+
: thePropagator(aPropagator),
3829
theMeasurementTracker(tracker),
39-
thePixelLayersValid(false),
40-
theFirstPixelBarrelLayer(nullptr),
4130
theFirstNegPixelFwdLayer(0),
4231
theFirstPosPixelFwdLayer(0) {}
4332

44-
~StartingLayerFinder() {}
45-
46-
std::vector<const DetLayer*> startingLayers(const FTS& aFts, float dr, float dz) const;
47-
48-
std::vector<const DetLayer*> startingLayers(const TrajectorySeed& aSeed) const;
33+
std::vector<const DetLayer*> operator()(const FreeTrajectoryState& aFts, float dr, float dz) const;
4934

35+
private:
5036
const BarrelDetLayer* firstPixelBarrelLayer() const;
5137
const std::vector<const ForwardDetLayer*> firstNegPixelFwdLayer() const;
5238
const std::vector<const ForwardDetLayer*> firstPosPixelFwdLayer() const;
5339

54-
const Propagator* propagator() const { return thePropagator; }
55-
56-
private:
57-
const Propagator* thePropagator;
58-
const MeasurementTracker* theMeasurementTracker;
59-
mutable bool thePixelLayersValid;
60-
mutable const BarrelDetLayer* theFirstPixelBarrelLayer;
40+
Propagator const& thePropagator;
41+
MeasurementTracker const& theMeasurementTracker;
42+
mutable bool thePixelLayersValid = false;
43+
mutable const BarrelDetLayer* theFirstPixelBarrelLayer = nullptr;
6144
mutable std::vector<const ForwardDetLayer*> theFirstNegPixelFwdLayer;
6245
mutable std::vector<const ForwardDetLayer*> theFirstPosPixelFwdLayer;
6346

6447
void checkPixelLayers() const;
65-
66-
inline bool rangesIntersect(const Range& a, const Range& b) const {
67-
if (a.first > b.second || b.first > a.second)
68-
return false;
69-
else
70-
return true;
71-
}
7248
};
73-
#endif //TR_StartingLayerFinder_H_
49+
50+
#endif

RecoTracker/MeasurementDet/src/LayerCollector.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ vector<const DetLayer*> LayerCollector::allLayers(const FTS& aFts) const {
99

1010
FTS myFts(aFts.parameters());
1111

12-
vector<const DetLayer*> nextLayers = finder()->startingLayers(myFts, deltaR(), deltaZ());
12+
vector<const DetLayer*> nextLayers = theStartingLayerFinder(myFts, deltaR(), deltaZ());
1313

1414
vector<const DetLayer*> dummy;
1515

RecoTracker/MeasurementDet/src/StartingLayerFinder.cc

Lines changed: 18 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,26 @@
1515

1616
using namespace std;
1717

18-
vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, float dr, float dz) const {
18+
namespace {
19+
20+
typedef std::pair<float, float> Range;
21+
22+
inline bool rangesIntersect(const Range& a, const Range& b) {
23+
if (a.first > b.second || b.first > a.second)
24+
return false;
25+
else
26+
return true;
27+
}
28+
}; // namespace
29+
30+
vector<const DetLayer*> StartingLayerFinder::operator()(const FreeTrajectoryState& aFts, float dr, float dz) const {
1931
vector<const DetLayer*> mylayers;
2032
mylayers.reserve(3);
2133

22-
FTS fastFts(aFts.parameters());
34+
FreeTrajectoryState fastFts(aFts.parameters());
2335

2436
//barrel pixel
25-
TSOS pTsos = propagator()->propagate(fastFts, firstPixelBarrelLayer()->surface());
37+
TrajectoryStateOnSurface pTsos = thePropagator.propagate(fastFts, firstPixelBarrelLayer()->surface());
2638

2739
if (pTsos.isValid()) {
2840
Range barrZRange(
@@ -38,7 +50,7 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
3850
//negative fwd pixel
3951

4052
for (auto infwd : firstPosPixelFwdLayer()) {
41-
pTsos = propagator()->propagate(fastFts, infwd->surface());
53+
pTsos = thePropagator.propagate(fastFts, infwd->surface());
4254
if (pTsos.isValid()) {
4355
Range nfwdRRange(infwd->specificSurface().innerRadius(), infwd->specificSurface().outerRadius());
4456
Range trajRRange(pTsos.globalPosition().perp() - dr, pTsos.globalPosition().perp() + dr);
@@ -50,7 +62,7 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
5062

5163
//positive fwd pixel
5264
for (auto ipfwd : firstPosPixelFwdLayer()) {
53-
pTsos = propagator()->propagate(fastFts, ipfwd->surface());
65+
pTsos = thePropagator.propagate(fastFts, ipfwd->surface());
5466
if (pTsos.isValid()) {
5567
Range pfwdRRange(ipfwd->specificSurface().innerRadius(), ipfwd->specificSurface().outerRadius());
5668
Range trajRRange(pTsos.globalPosition().perp() - dr, pTsos.globalPosition().perp() + dr);
@@ -63,47 +75,6 @@ vector<const DetLayer*> StartingLayerFinder::startingLayers(const FTS& aFts, flo
6375
return mylayers;
6476
}
6577

66-
vector<const DetLayer*> StartingLayerFinder::startingLayers(const TrajectorySeed& aSeed) const {
67-
float dr = 0., dz = 0.;
68-
69-
if (propagator()->propagationDirection() != aSeed.direction())
70-
return vector<const DetLayer*>();
71-
72-
if (aSeed.nHits() != 2)
73-
return vector<const DetLayer*>();
74-
75-
auto firstHit = aSeed.recHits().begin();
76-
const TrackingRecHit* recHit1 = &(*firstHit);
77-
const DetLayer* hit1Layer = theMeasurementTracker->geometricSearchTracker()->detLayer(recHit1->geographicalId());
78-
79-
auto secondHit = aSeed.recHits().end();
80-
const TrackingRecHit* recHit2 = &(*secondHit);
81-
const DetLayer* hit2Layer = theMeasurementTracker->geometricSearchTracker()->detLayer(recHit2->geographicalId());
82-
83-
GeomDetEnumerators::Location p1 = hit1Layer->location();
84-
GeomDetEnumerators::Location p2 = hit2Layer->location();
85-
86-
if (p1 == GeomDetEnumerators::barrel && p2 == GeomDetEnumerators::barrel) {
87-
dr = 0.1;
88-
dz = 5.;
89-
} else if (p1 == GeomDetEnumerators::endcap && p2 == GeomDetEnumerators::endcap) {
90-
dr = 5.;
91-
dz = 0.1;
92-
} else {
93-
dr = 0.1;
94-
dz = 0.1;
95-
}
96-
97-
const GeomDet* gdet = theMeasurementTracker->geomTracker()->idToDet(DetId(aSeed.startingState().detId()));
98-
99-
TrajectoryStateOnSurface tsos = trajectoryStateTransform::transientState(
100-
aSeed.startingState(), &(gdet->surface()), thePropagator->magneticField());
101-
102-
const FreeTrajectoryState* fts = tsos.freeTrajectoryState();
103-
104-
return startingLayers(*fts, dr, dz);
105-
}
106-
10778
const BarrelDetLayer* StartingLayerFinder::firstPixelBarrelLayer() const {
10879
checkPixelLayers();
10980
return theFirstPixelBarrelLayer;
@@ -121,7 +92,7 @@ const vector<const ForwardDetLayer*> StartingLayerFinder::firstPosPixelFwdLayer(
12192

12293
void StartingLayerFinder::checkPixelLayers() const {
12394
if (!thePixelLayersValid) {
124-
const GeometricSearchTracker* theGeometricSearchTracker = theMeasurementTracker->geometricSearchTracker();
95+
const GeometricSearchTracker* theGeometricSearchTracker = theMeasurementTracker.geometricSearchTracker();
12596

12697
theFirstPixelBarrelLayer = theGeometricSearchTracker->pixelBarrelLayers().front();
12798
theFirstNegPixelFwdLayer = theGeometricSearchTracker->negPixelForwardLayers();

Validation/RecoMuon/src/MuonSeedTrack.cc

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -189,36 +189,10 @@ pair<bool, reco::Track> MuonSeedTrack::buildTrackAtPCA(const TrajectorySeed& see
189189
math::XYZVector persistentMomentum(p.x(), p.y(), p.z());
190190

191191
double dummyNDOF = 1.0;
192-
//double ndof = computeNDOF(seed);
193192
double dummyChi2 = 1.0;
194193

195194
reco::Track track(
196195
dummyChi2, dummyNDOF, persistentPCA, persistentMomentum, ftsAtVtx.charge(), ftsAtVtx.curvilinearError());
197196

198197
return pair<bool, reco::Track>(true, track);
199198
}
200-
201-
/*!
202-
* Calculates number of degrees of freedom for the TrajectorySeed
203-
*/
204-
double MuonSeedTrack::computeNDOF(const TrajectorySeed& trajectory) const {
205-
const string metname = "MuonSeedTrack";
206-
207-
auto recHits1 = (trajectory.recHits().begin());
208-
auto recHits2 = (trajectory.recHits().end());
209-
210-
double ndof = 0.;
211-
212-
if ((*recHits1).isValid())
213-
ndof += (*recHits1).dimension();
214-
if ((*recHits2).isValid())
215-
ndof += (*recHits2).dimension();
216-
217-
//const Trajectory::RecHitContainer transRecHits = trajectory.recHits();
218-
//for(Trajectory::RecHitContainer::const_iterator rechit = transRecHits.begin();
219-
// rechit != transRecHits.end(); ++rechit)
220-
//if ((*rechit)->isValid()) ndof += (*rechit)->dimension();
221-
222-
// FIXME! in case of Boff is dof - 4
223-
return max(ndof - 5., 0.);
224-
}

Validation/RecoMuon/src/MuonSeedTrack.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ class MuonSeedTrack : public edm::EDProducer {
7070
theAlias = alias;
7171
}
7272

73-
/// compute the TrajectorySeed's degree of freedom
74-
double computeNDOF(const TrajectorySeed&) const;
75-
7673
/// Build a track at the PCA WITHOUT any vertex constriant
7774
std::pair<bool, reco::Track> buildTrackAtPCA(const TrajectorySeed&) const;
7875

0 commit comments

Comments
 (0)