Skip to content

Commit 35cea7d

Browse files
committed
Merged hlttracking-parabolic-mf-build-fit from repository tropiano
2 parents 3be1d3a + b122bdf commit 35cea7d

34 files changed

+129
-38
lines changed

Configuration/StandardSequences/python/MagneticField_38T_cff.py

+4
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,8 @@
55
#Default is version 85l
66
from MagneticField.Engine.volumeBasedMagneticField_090322_2pi_scaled_cfi import *
77

8+
# Parabolic parametrized magnetic field used for track building
9+
from MagneticField.ParametrizedEngine.ParabolicParametrizedField_cfi import ParametrizedMagneticFieldProducer as ParabolicParametrizedMagneticFieldProducer
10+
ParabolicParametrizedMagneticFieldProducer.label = "ParabolicMf"
11+
812

Configuration/StandardSequences/python/MagneticField_AutoFromDBCurrent_cff.py

+4
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@
44
# and loading the best map available for that current as specified in the file
55
from MagneticField.Engine.autoMagneticFieldProducer_cfi import *
66

7+
# Parabolic parametrized magnetic field used for track building
8+
from MagneticField.ParametrizedEngine.ParabolicParametrizedField_cfi import ParametrizedMagneticFieldProducer as ParabolicParametrizedMagneticFieldProducer
9+
ParabolicParametrizedMagneticFieldProducer.label = "ParabolicMf"
10+
711

MagneticField/ParametrizedEngine/plugins/ParabolicParametrizedMagneticField.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ ParabolicParametrizedMagneticField::inTesla(const GlobalPoint& gp) const {
2525
if (isDefined(gp)) {
2626
return inTeslaUnchecked(gp);
2727
} else {
28-
edm::LogWarning("MagneticField|FieldOutsideValidity") << " Point " << gp << " is outside the validity region of ParabolicParametrizedMagneticField";
28+
LogDebug("MagneticField|FieldOutsideValidity") << " Point " << gp << " is outside the validity region of ParabolicParametrizedMagneticField";
2929
return GlobalVector();
3030
}
3131
}

RecoTracker/CkfPattern/python/CkfTrackCandidates_cfi.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@
1818
maxSeedsBeforeCleaning = cms.uint32(5000),
1919
# SeedProducer:SeedLabel descoped to src
2020
src = cms.InputTag('globalMixedSeeds'),
21+
SimpleMagneticField = cms.string('ParabolicMf'),
2122
NavigationSchool = cms.string('SimpleNavigationSchool'),
2223
TrajectoryBuilder = cms.string('GroupedCkfTrajectoryBuilder'),
2324
TransientInitialStateEstimatorParameters = cms.PSet(
24-
propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
25-
propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite'),
25+
propagatorAlongTISE = cms.string('PropagatorWithMaterialParabolicMf'),
26+
propagatorOppositeTISE = cms.string('PropagatorWithMaterialParabolicMfOpposite'),
2627
numberMeasurementsForFit = cms.int32(4)
2728
),
2829
MeasurementTrackerEvent = cms.InputTag("MeasurementTrackerEvent"),

RecoTracker/CkfPattern/python/CkfTrajectories_cfi.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
TrajectoryBuilder = cms.string('GroupedCkfTrajectoryBuilder'),
2323
# nested parameter set for TransientInitialStateEstimator
2424
TransientInitialStateEstimatorParameters = cms.PSet(
25-
propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
26-
propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite'),
25+
propagatorAlongTISE = cms.string('PropagatorWithMaterialParabolicMf'),
26+
propagatorOppositeTISE = cms.string('PropagatorWithMaterialParabolicMfOpposite'),
2727
numberMeasurementsForFit = cms.int32(4)
2828
),
2929
MeasurementTrackerEvent = cms.InputTag("MeasurementTrackerEvent")

RecoTracker/CkfPattern/python/CkfTrajectoryBuilderESProducer_cfi.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import FWCore.ParameterSet.Config as cms
22

33
CkfTrajectoryBuilder = cms.ESProducer("CkfTrajectoryBuilderESProducer",
4-
propagatorAlong = cms.string('PropagatorWithMaterial'),
4+
propagatorAlong = cms.string('PropagatorWithMaterialParabolicMf'),
55
trajectoryFilterName = cms.string('ckfBaseTrajectoryFilter'),
66
maxCand = cms.int32(5),
77
ComponentName = cms.string('CkfTrajectoryBuilder'),
@@ -11,7 +11,7 @@
1111
TTRHBuilder = cms.string('WithTrackAngle'),
1212
updator = cms.string('KFUpdator'),
1313
alwaysUseInvalidHits = cms.bool(True),
14-
propagatorOpposite = cms.string('PropagatorWithMaterialOpposite'),
14+
propagatorOpposite = cms.string('PropagatorWithMaterialParabolicMfOpposite'),
1515
lostHitPenalty = cms.double(30.0),
1616
#SharedSeedCheck = cms.bool(False)
1717
)

RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderESProducer_cfi.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
GroupedCkfTrajectoryBuilder = cms.ESProducer("GroupedCkfTrajectoryBuilderESProducer",
44
bestHitOnly = cms.bool(True),
5-
propagatorAlong = cms.string('PropagatorWithMaterial'),
5+
propagatorAlong = cms.string('PropagatorWithMaterialParabolicMf'),
66
# Filter used on tracks at end of all tracking (in-out + out-in)
77
trajectoryFilterName = cms.string('ckfBaseTrajectoryFilter'),
88
# Filter used on tracks at end of in-out tracking phase
@@ -29,7 +29,7 @@
2929
requireSeedHitsInRebuild = cms.bool(True),
3030
keepOriginalIfRebuildFails = cms.bool(False),
3131
estimator = cms.string('Chi2'),
32-
propagatorOpposite = cms.string('PropagatorWithMaterialOpposite'),
32+
propagatorOpposite = cms.string('PropagatorWithMaterialParabolicMfOpposite'),
3333
# Out-in tracking will not be attempted unless this many hits
3434
# are on track after in-out tracking phase.
3535
minNrOfHitsForRebuild = cms.int32(5)

RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,10 @@ namespace cms{
119119

120120
//services
121121
es.get<TrackerRecoGeometryRecord>().get( theGeomSearchTracker );
122-
es.get<IdealMagneticFieldRecord>().get( theMagField );
122+
if (conf_.exists("SimpleMagneticField"))
123+
es.get<IdealMagneticFieldRecord>().get(conf_.getParameter<std::string>("SimpleMagneticField"), theMagField );
124+
else
125+
es.get<IdealMagneticFieldRecord>().get(theMagField );
123126

124127
if (!theInitialState){
125128
// constructor uses the EventSetup, it must be in the setEventSetup were it has a proper value.

RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,12 @@
131131
)
132132

133133
# Propagator taking into account momentum uncertainty in multiple scattering calculation.
134-
import TrackingTools.MaterialEffects.MaterialPropagator_cfi
135-
mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
134+
import TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff
135+
mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.MaterialPropagatorParabolicMF.clone(
136136
ComponentName = 'mixedTripletStepPropagator',
137137
ptMin = 0.1
138138
)
139-
import TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi
140-
mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
139+
mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.OppositeMaterialPropagatorParabolicMF.clone(
141140
ComponentName = 'mixedTripletStepPropagatorOpposite',
142141
ptMin = 0.1
143142
)

RecoTracker/IterativeTracking/python/PixelLessTripletStep_cff.py

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
chi2_cuts = cms.vdouble(),
7676
maxChi2 = cms.double(4.0),
7777
extraPhiKDBox = cms.double(0.0),
78+
SimpleMagneticField = cms.string('ParabolicMf'),
7879
refitHits = cms.bool(True),
7980
ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
8081
debug = cms.bool(False),

RecoTracker/IterativeTracking/python/PostLS1_PixelLessTripletStep_cff.py

+2
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
maxChi2 = cms.double(4.0),#3.0 in v3
5050
refitHits = cms.bool(True),
5151
extraPhiKDBox = cms.double(0.),
52+
SimpleMagneticField = cms.string('ParabolicMf'),
5253
ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
5354
debug = cms.bool(False),
5455
detIdsToDebug = cms.vint32(0,0,0)
@@ -125,6 +126,7 @@
125126
chi2_cuts = cms.vdouble(),
126127
maxChi2 = cms.double(6.0),#5.0 in v3 #4.0 in v2
127128
extraPhiKDBox = cms.double(0.),
129+
SimpleMagneticField = cms.string('ParabolicMf'),
128130
refitHits = cms.bool(True),
129131
ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
130132
debug = cms.bool(False),

RecoTracker/IterativeTracking/python/PostLS1_TobTecHybridStep_cff.py

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
chi2_cuts = cms.vdouble(),
7373
refitHits = cms.bool(True),
7474
extraPhiKDBox = cms.double(0.),
75+
SimpleMagneticField = cms.string('ParabolicMf'),
7576
ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
7677
debug = cms.bool(False),
7778
detIdsToDebug = cms.vint32(0,0,0)

RecoTracker/IterativeTracking/python/TobTecHybridStep_cff.py

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
chi2_cuts = cms.vdouble(),#2.5,3.5,3.5,3.5,3.5
7373
refitHits = cms.bool(True),
7474
extraPhiKDBox = cms.double(0.),
75+
SimpleMagneticField = cms.string('ParabolicMf'),
7576
ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
7677
debug = cms.bool(False),
7778
detIdsToDebug = cms.vint32(0,0,0)

RecoTracker/TkNavigation/plugins/CfgNavigationSchoolESProducer.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@ NavigationSchoolESProducer::ReturnType CfgNavigationSchoolESProducer::produce(co
66

77
// get the field
88
edm::ESHandle<MagneticField> field;
9-
iRecord.getRecord<IdealMagneticFieldRecord>().get(field);
9+
if (theNavigationPSet.exists("SimpleMagneticField"))
10+
iRecord.getRecord<IdealMagneticFieldRecord>().get(theNavigationPSet.getParameter<std::string>("SimpleMagneticField"), field);
11+
else
12+
iRecord.getRecord<IdealMagneticFieldRecord>().get(field);
1013

1114
//get the geometricsearch tracker geometry
1215
edm::ESHandle<GeometricSearchTracker> geometricSearchTracker;

RecoTracker/TkNavigation/plugins/NavigationSchoolESProducer.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ NavigationSchoolESProducer::produce(const NavigationSchoolRecord& iRecord)
3838

3939
// get the field
4040
edm::ESHandle<MagneticField> field;
41-
iRecord.getRecord<IdealMagneticFieldRecord>().get(field);
41+
if (theNavigationPSet.exists("SimpleMagneticField"))
42+
iRecord.getRecord<IdealMagneticFieldRecord>().get(theNavigationPSet.getParameter<std::string>("SimpleMagneticField"), field);
43+
else
44+
iRecord.getRecord<IdealMagneticFieldRecord>().get(field);
4245

4346
//get the geometricsearch tracker geometry
4447
edm::ESHandle<GeometricSearchTracker> geometricSearchTracker;

RecoTracker/TkNavigation/python/CfgNavigationSchool_cfi.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import FWCore.ParameterSet.Config as cms
22

33
CfgNavigationSchoolESProducer = cms.ESProducer("CfgNavigationSchoolESProducer",
4-
ComponentName = cms.string('CfgNavigationSchool'))
4+
ComponentName = cms.string('CfgNavigationSchool'),
5+
SimpleMagneticField = cms.string('ParabolicMf'),
6+
)
57

68
_defaultPSetWithIn=cms.PSet(IN = cms.vstring(''),OUT = cms.vstring(''))
79
_defaultPSetInverseRelation=cms.PSet(OUT = cms.vstring(''))
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import FWCore.ParameterSet.Config as cms
22

33
navigationSchoolESProducer = cms.ESProducer("NavigationSchoolESProducer",
4-
ComponentName = cms.string('SimpleNavigationSchool')
4+
ComponentName = cms.string('SimpleNavigationSchool'),
5+
SimpleMagneticField = cms.string('ParabolicMf')
56
)
67

78

RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.cc

+8-1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ MultiHitGeneratorFromChi2::MultiHitGeneratorFromChi2(const edm::ParameterSet& cf
7575
detIdsToDebug.push_back(0);
7676
detIdsToDebug.push_back(0);
7777
}
78+
if (cfg.exists("SimpleMagneticField")) {
79+
useSimpleMF = true;
80+
mfName_ = cfg.getParameter<std::string>("SimpleMagneticField");
81+
}
7882
bfield = 0;
7983
nomField = -1.;
8084
}
@@ -114,7 +118,10 @@ void MultiHitGeneratorFromChi2::hitSets(const TrackingRegion& region,
114118
es.get<TrackerDigiGeometryRecord>().get(tracker);
115119
if (nomField<0 && bfield == 0) {
116120
edm::ESHandle<MagneticField> bfield_h;
117-
es.get<IdealMagneticFieldRecord>().get(bfield_h);
121+
if (useSimpleMF)
122+
es.get<IdealMagneticFieldRecord>().get(mfName_, bfield_h);
123+
else
124+
es.get<IdealMagneticFieldRecord>().get(bfield_h);
118125
bfield = bfield_h.product();
119126
nomField = bfield->nominalValue();
120127
}

RecoTracker/TkSeedGenerator/plugins/MultiHitGeneratorFromChi2.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ typedef CombinedMultiHitGenerator::LayerCacheType LayerCacheType;
6767
bool debug;
6868
std::string filterName_;
6969
std::vector<int> detIdsToDebug;
70-
70+
bool useSimpleMF;
71+
std::string mfName_;
7172
};
7273
#endif
7374

RecoTracker/TkSeedGenerator/plugins/SeedFromConsecutiveHitsCreator.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ void SeedFromConsecutiveHitsCreator::init(const TrackingRegion & iregion,
3232
// get propagator
3333
es.get<TrackingComponentsRecord>().get(thePropagatorLabel, propagatorHandle);
3434
// mag field
35-
es.get<IdealMagneticFieldRecord>().get(bfield);
35+
if (useSimpleMF)
36+
es.get<IdealMagneticFieldRecord>().get(mfName_, bfield);
37+
else
38+
es.get<IdealMagneticFieldRecord>().get(bfield);
3639
nomField = bfield->nominalValue();
3740
isBOFF = (0==nomField);
3841
}

RecoTracker/TkSeedGenerator/plugins/SeedFromConsecutiveHitsCreator.h

+9-3
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,18 @@ class SeedFromConsecutiveHitsCreator : public SeedCreator {
2020
theBOFFMomentum(cfg.existsAs<double>("SeedMomentumForBOFF") ? cfg.getParameter<double>("SeedMomentumForBOFF") : 5.0),
2121
theOriginTransverseErrorMultiplier(cfg.existsAs<double>("OriginTransverseErrorMultiplier") ? cfg.getParameter<double>("OriginTransverseErrorMultiplier") : 1.0),
2222
theMinOneOverPtError(cfg.existsAs<double>("MinOneOverPtError") ? cfg.getParameter<double>("MinOneOverPtError") : 1.0)
23-
{}
23+
{
24+
if (cfg.exists("SimpleMagneticField")) {
25+
useSimpleMF = true;
26+
mfName_ = cfg.getParameter<std::string>("SimpleMagneticField");
27+
}
28+
}
2429

2530
SeedFromConsecutiveHitsCreator(
2631
const std::string & propagator = "PropagatorWithMaterial", double seedMomentumForBOFF = -5.0,
2732
double aOriginTransverseErrorMultiplier = 1.0, double aMinOneOverPtError = 1.0)
2833
: thePropagatorLabel(propagator), theBOFFMomentum(seedMomentumForBOFF),
29-
theOriginTransverseErrorMultiplier(aOriginTransverseErrorMultiplier), theMinOneOverPtError(aMinOneOverPtError) { }
34+
theOriginTransverseErrorMultiplier(aOriginTransverseErrorMultiplier), theMinOneOverPtError(aMinOneOverPtError), useSimpleMF(false) { }
3035

3136
//dtor
3237
virtual ~SeedFromConsecutiveHitsCreator();
@@ -76,6 +81,7 @@ class SeedFromConsecutiveHitsCreator : public SeedCreator {
7681
edm::ESHandle<MagneticField> bfield;
7782
float nomField;
7883
bool isBOFF = false;
79-
84+
bool useSimpleMF;
85+
std::string mfName_;
8086
};
8187
#endif

RecoTracker/TkSeedGenerator/python/SeedFromConsecutiveHitsCreator_cfi.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
SeedFromConsecutiveHitsCreator = cms.PSet(
44
ComponentName = cms.string('SeedFromConsecutiveHitsCreator'),
5-
propagator = cms.string('PropagatorWithMaterial'),
5+
propagator = cms.string('PropagatorWithMaterialParabolicMf'),
66
SeedMomentumForBOFF = cms.double(5.0),
77
OriginTransverseErrorMultiplier = cms.double(1.0),
8-
MinOneOverPtError = cms.double(1.0)
8+
MinOneOverPtError = cms.double(1.0),
9+
SimpleMagneticField = cms.string('ParabolicMf')
910
)
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import FWCore.ParameterSet.Config as cms
22
SeedFromConsecutiveHitsStraightLineCreator = cms.PSet(
33
ComponentName = cms.string('SeedFromConsecutiveHitsStraightLineCreator'),
4-
propagator = cms.string('PropagatorWithMaterial'),
4+
propagator = cms.string('PropagatorWithMaterialParabolicMf'),
55
OriginTransverseErrorMultiplier = cms.double(1.0),
66
MinOneOverPtError = cms.double(1.0)
77
)
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import FWCore.ParameterSet.Config as cms
22
SeedFromConsecutiveHitsTripletOnlyCreator = cms.PSet(
33
ComponentName = cms.string('SeedFromConsecutiveHitsTripletOnlyCreator'),
4-
propagator = cms.string('PropagatorWithMaterial')
4+
propagator = cms.string('PropagatorWithMaterialParabolicMf')
55
)

RecoTracker/TkSeedGenerator/src/SeedFromProtoTrack.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void SeedFromProtoTrack::init(const reco::Track & proto, const edm::EventSetup&
5252
const Propagator* propagator = &(*propagatorHandle);
5353

5454
edm::ESHandle<MagneticField> field;
55-
es.get<IdealMagneticFieldRecord>().get(field);
55+
es.get<IdealMagneticFieldRecord>().get(field);//fixme
5656

5757
reco::TrackBase::Point vtx = proto.referencePoint();
5858
reco::TrackBase::Vector mom = proto.momentum();

RecoTracker/TrackProducer/interface/TrackProducerBase.icc

+9-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,15 @@ TrackProducerBase<T>::getFromES(const edm::EventSetup& setup,
5656
//get magnetic field
5757
//
5858
LogDebug("TrackProducer") << "get magnetic field" << "\n";
59-
setup.get<IdealMagneticFieldRecord>().get(theMF);
59+
bool simpleMF = false;
60+
if (conf_.exists("useSimpleMF")) simpleMF = conf_.getParameter<bool>("useSimpleMF");
61+
if (simpleMF){
62+
std::string mfName_ = conf_.getParameter<std::string>("SimpleMagneticField");
63+
setup.get<IdealMagneticFieldRecord>().get(mfName_, theMF);
64+
}
65+
else
66+
setup.get<IdealMagneticFieldRecord>().get(theMF);
67+
6068
//
6169
// get the fitter from the ES
6270
//
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
from TrackingTools.GeomPropagators.AnalyticalPropagator_cfi import AnalyticalPropagator
4+
AnalyticalPropagatorParabolicMF = AnalyticalPropagator.clone(
5+
SimpleMagneticField = cms.string('ParabolicMf'),
6+
ComponentName = cms.string('AnalyticalPropagatorParabolicMf')
7+
)
8+
9+
from TrackingTools.GeomPropagators.OppositeAnalyticalPropagator_cfi import OppositeAnalyticalPropagator
10+
OppositeAnalyticalPropagatorParabolicMF = OppositeAnalyticalPropagator.clone(
11+
SimpleMagneticField = cms.string('ParabolicMf'),
12+
ComponentName = cms.string('AnalyticalPropagatorParabolicMfOpposite')
13+
)

TrackingTools/KalmanUpdators/plugins/TrackingRecHitPropagatorESProducer.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ TrackingRecHitPropagatorESProducer::~TrackingRecHitPropagatorESProducer() {}
2323
boost::shared_ptr<TrackingRecHitPropagator>
2424
TrackingRecHitPropagatorESProducer::produce(const TrackingComponentsRecord& iRecord){
2525
ESHandle<MagneticField> magfield;
26-
iRecord.getRecord<IdealMagneticFieldRecord>().get(magfield );
26+
if (pset_.exists("SimpleMagneticField"))
27+
iRecord.getRecord<IdealMagneticFieldRecord>().get(pset_.getParameter<std::string>("SimpleMagneticField"), magfield);
28+
else
29+
iRecord.getRecord<IdealMagneticFieldRecord>().get(magfield);
2730
theHitPropagator= boost::shared_ptr<TrackingRecHitPropagator>(new TrackingRecHitPropagator(magfield.product()));
2831
return theHitPropagator;
2932
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import FWCore.ParameterSet.Config as cms
22

33
trackingRecHitPropagator = cms.ESProducer("TrackingRecHitPropagatorESProducer",
4-
ComponentName = cms.string('trackingRecHitPropagator')
4+
ComponentName = cms.string('trackingRecHitPropagator'),
5+
SimpleMagneticField = cms.string('ParabolicMf')
56
)
67

78

TrackingTools/MaterialEffects/plugins/PropagatorWithMaterialESProducer.cc

+7-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ PropagatorWithMaterialESProducer::produce(const TrackingComponentsRecord & iReco
2828
// delete _propagator;
2929
// _propagator = 0;
3030
// }
31-
ESHandle<MagneticField> magfield;
32-
iRecord.getRecord<IdealMagneticFieldRecord>().get(magfield );
33-
3431

3532
std::string pdir = pset_.getParameter<std::string>("PropagationDirection");
3633
double mass = pset_.getParameter<double>("Mass");
@@ -40,6 +37,13 @@ PropagatorWithMaterialESProducer::produce(const TrackingComponentsRecord & iReco
4037
pset_.getParameter<bool>("useOldAnalPropLogic") : true;
4138
double ptMin = pset_.existsAs<double>("ptMin") ? pset_.getParameter<double>("ptMin") : -1.0;
4239

40+
ESHandle<MagneticField> magfield;
41+
if (pset_.exists("SimpleMagneticField"))
42+
iRecord.getRecord<IdealMagneticFieldRecord>().get(pset_.getParameter<std::string>("SimpleMagneticField"), magfield);
43+
else
44+
iRecord.getRecord<IdealMagneticFieldRecord>().get(magfield);
45+
//fixme check that useRK is false when using SimpleMagneticField
46+
4347
PropagationDirection dir = alongMomentum;
4448

4549
if (pdir == "oppositeToMomentum") dir = oppositeToMomentum;

0 commit comments

Comments
 (0)