50 LogTrace(
"Muon|RecoMuon|L2MuonProducer") <<
"constructor called" << endl;
57 seedsToken = consumes<edm::View<TrajectorySeed>>(theSeedCollectionLabel);
71 string typeOfBuilder = parameterSet.
existsAs<
string>(
"MuonTrajectoryBuilder")
72 ? parameterSet.
getParameter<
string>(
"MuonTrajectoryBuilder")
73 :
"StandAloneMuonTrajectoryBuilder";
74 if (typeOfBuilder ==
"StandAloneMuonTrajectoryBuilder" || typeOfBuilder.empty())
76 else if (typeOfBuilder ==
"Exhaustive")
79 LogWarning(
"Muon|RecoMuon|StandAloneMuonProducer")
80 <<
"No Trajectory builder associated with " << typeOfBuilder
81 <<
". Falling down to the default (StandAloneMuonTrajectoryBuilder)";
87 produces<reco::TrackCollection>();
88 produces<reco::TrackCollection>(
"UpdatedAtVtx");
89 produces<TrackingRecHitCollection>();
90 produces<reco::TrackExtraCollection>();
91 produces<reco::TrackToTrackMap>();
93 produces<std::vector<Trajectory>>();
94 produces<TrajTrackAssociationCollection>();
96 produces<edm::AssociationMap<edm::OneToMany<std::vector<L2MuonTrajectorySeed>, std::vector<L2MuonTrajectorySeed>>>>();
101 LogTrace(
"Muon|RecoMuon|L2eMuonProducer") <<
"L2MuonProducer destructor called" << endl;
103 delete theTrackFinder;
110 LogTrace(metname) << endl << endl << endl;
111 LogTrace(metname) <<
"L2 Muon Reconstruction Started" << endl;
114 LogTrace(metname) <<
"Taking the seeds: " << theSeedCollectionLabel.label() << endl;
116 event.getByToken(seedsToken, seeds);
119 theService->update(eventSetup);
122 LogTrace(metname) <<
"Track Reconstruction" << endl;
123 theTrackFinder->reconstruct(seeds, event, eventSetup);
126 <<
"================================" << endl
134 psd0.
addUntracked<std::vector<std::string>>(
"Propagators",
136 "hltESPFastSteppingHelixPropagatorAny" 137 "hltESPFastSteppingHelixPropagatorOpposite",
139 psd0.
add<
bool>(
"RPCLayers",
true);
147 psd0.
add<
std::string>(
"Fitter",
"hltESPKFFittingSmootherForL2Muon");
148 psd0.
add<
std::string>(
"MuonRecHitBuilder",
"hltESPMuonTransientTrackingRecHitBuilder");
149 psd0.
add<
unsigned int>(
"NMinRecHits", 2);
150 psd0.
add<
bool>(
"UseSubRecHits",
false);
151 psd0.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
152 psd0.
add<
double>(
"RescaleError", 100.0);
158 psd0.
add<
bool>(
"DoRefit",
false);
159 psd0.
add<
std::string>(
"SeedPropagator",
"hltESPFastSteppingHelixPropagatorAny");
162 psd1.
add<
double>(
"NumberOfSigma", 3.0);
165 psd1.
add<
double>(
"MaxChi2", 1000.0);
168 psd2.
add<
double>(
"MaxChi2", 25.0);
169 psd2.
add<
double>(
"RescaleErrorFactor", 100.0);
170 psd2.
add<
int>(
"Granularity", 0);
171 psd2.
add<
bool>(
"ExcludeRPCFromFit",
false);
172 psd2.
add<
bool>(
"UseInvalidHits",
true);
173 psd2.
add<
bool>(
"RescaleError",
false);
176 psd1.
add<
bool>(
"EnableRPCMeasurement",
true);
178 psd1.
add<
bool>(
"EnableDTMeasurement",
true);
180 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
181 psd1.
add<
bool>(
"EnableGEMMeasurement",
false);
183 psd1.
add<
bool>(
"EnableME0Measurement",
false);
185 psd1.
add<
bool>(
"EnableCSCMeasurement",
true);
191 psd1.
add<
std::string>(
"Fitter",
"hltESPKFFittingSmootherForL2Muon");
192 psd1.
add<
std::string>(
"MuonRecHitBuilder",
"hltESPMuonTransientTrackingRecHitBuilder");
193 psd1.
add<
unsigned int>(
"NMinRecHits", 2);
194 psd1.
add<
bool>(
"UseSubRecHits",
false);
195 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
196 psd1.
add<
double>(
"RescaleError", 100.0);
199 psd0.
add<
bool>(
"DoBackwardFilter",
true);
203 psd1.
add<
double>(
"NumberOfSigma", 3.0);
207 psd1.
add<
double>(
"MaxChi2", 100.0);
210 psd2.
add<
double>(
"MaxChi2", 25.0);
211 psd2.
add<
double>(
"RescaleErrorFactor", 100.0);
212 psd2.
add<
int>(
"Granularity", 0);
213 psd2.
add<
bool>(
"ExcludeRPCFromFit",
false);
214 psd2.
add<
bool>(
"UseInvalidHits",
true);
215 psd2.
add<
bool>(
"RescaleError",
false);
218 psd1.
add<
bool>(
"EnableRPCMeasurement",
true);
220 psd1.
add<
bool>(
"EnableDTMeasurement",
true);
222 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
223 psd1.
add<
bool>(
"EnableGEMMeasurement",
false);
225 psd1.
add<
bool>(
"EnableME0Measurement",
false);
227 psd1.
add<
bool>(
"EnableCSCMeasurement",
true);
230 psd0.
add<
bool>(
"DoSeedRefit",
false);
233 desc.
add<
bool>(
"DoSeedRefit",
false);
236 psd0.
add<
std::string>(
"Smoother",
"hltESPKFTrajectorySmootherForMuonTrackLoader");
237 psd0.
add<
bool>(
"DoSmoothing",
false);
241 psd1.
add<
double>(
"MaxChi2", 1000000.0);
242 psd1.
add<std::vector<double>>(
"BeamSpotPosition",
248 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorOpposite");
249 psd1.
add<std::vector<double>>(
"BeamSpotPositionErrors",
257 psd0.
add<
bool>(
"VertexConstraint",
true);
258 psd0.
add<
std::string>(
"TTRHBuilder",
"hltESPTTRHBWithTrackAngle");
262 descriptions.
add(
"L2MuonProducer", desc);
T getParameter(std::string const &) const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
const std::string metname
void produce(edm::Event &, const edm::EventSetup &) override
reconstruct muons
ParameterDescriptionBase * add(U const &iLabel, T const &value)
L2MuonProducer(const edm::ParameterSet &)
constructor with config
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
~L2MuonProducer() override
destructor
ParameterSet const & parameterSet(Provenance const &provenance)