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") :
"StandAloneMuonTrajectoryBuilder";
73 if(typeOfBuilder ==
"StandAloneMuonTrajectoryBuilder" || typeOfBuilder ==
"")
75 else if(typeOfBuilder ==
"Exhaustive")
78 LogWarning(
"Muon|RecoMuon|StandAloneMuonProducer") <<
"No Trajectory builder associated with "<<typeOfBuilder
79 <<
". Falling down to the default (StandAloneMuonTrajectoryBuilder)";
86 produces<reco::TrackCollection>();
87 produces<reco::TrackCollection>(
"UpdatedAtVtx");
88 produces<TrackingRecHitCollection>();
89 produces<reco::TrackExtraCollection>();
90 produces<reco::TrackToTrackMap>();
92 produces<std::vector<Trajectory> >();
93 produces<TrajTrackAssociationCollection>();
95 produces<edm::AssociationMap<edm::OneToMany<std::vector<L2MuonTrajectorySeed>, std::vector<L2MuonTrajectorySeed> > > >();
100 LogTrace(
"Muon|RecoMuon|L2eMuonProducer")<<
"L2MuonProducer destructor called"<<endl;
102 delete theTrackFinder;
111 LogTrace(metname)<<endl<<endl<<endl;
112 LogTrace(metname)<<
"L2 Muon Reconstruction Started"<<endl;
115 LogTrace(metname)<<
"Taking the seeds: "<<theSeedCollectionLabel.label()<<endl;
117 event.getByToken(seedsToken,seeds);
120 theService->update(eventSetup);
123 LogTrace(metname)<<
"Track Reconstruction"<<endl;
124 theTrackFinder->reconstruct(seeds,event, eventSetup);
127 <<
"================================" 135 psd0.
addUntracked<std::vector<std::string>>(
"Propagators", {
136 "hltESPFastSteppingHelixPropagatorAny" 137 "hltESPFastSteppingHelixPropagatorOpposite",
139 psd0.
add<
bool>(
"RPCLayers",
true);
148 psd0.
add<
std::string>(
"Fitter",
"hltESPKFFittingSmootherForL2Muon");
149 psd0.
add<
std::string>(
"MuonRecHitBuilder",
"hltESPMuonTransientTrackingRecHitBuilder");
150 psd0.
add<
unsigned int>(
"NMinRecHits",2);
151 psd0.
add<
bool>(
"UseSubRecHits",
false);
152 psd0.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
153 psd0.
add<
double>(
"RescaleError", 100.0);
159 psd0.
add<
bool>(
"DoRefit",
false);
160 psd0.
add<
std::string>(
"SeedPropagator",
"hltESPFastSteppingHelixPropagatorAny");
163 psd1.
add<
double>(
"NumberOfSigma", 3.0);
166 psd1.
add<
double>(
"MaxChi2", 1000.0);
169 psd2.
add<
double>(
"MaxChi2", 25.0);
170 psd2.
add<
double>(
"RescaleErrorFactor", 100.0);
171 psd2.
add<
int>(
"Granularity", 0);
172 psd2.
add<
bool>(
"ExcludeRPCFromFit",
false);
173 psd2.
add<
bool>(
"UseInvalidHits",
true);
174 psd2.
add<
bool>(
"RescaleError",
false);
177 psd1.
add<
bool>(
"EnableRPCMeasurement",
true);
179 psd1.
add<
bool>(
"EnableDTMeasurement",
true);
181 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
182 psd1.
add<
bool>(
"EnableGEMMeasurement",
false);
184 psd1.
add<
bool>(
"EnableME0Measurement",
false);
186 psd1.
add<
bool>(
"EnableCSCMeasurement",
true);
192 psd1.
add<
std::string>(
"Fitter",
"hltESPKFFittingSmootherForL2Muon");
193 psd1.
add<
std::string>(
"MuonRecHitBuilder",
"hltESPMuonTransientTrackingRecHitBuilder");
194 psd1.
add<
unsigned int>(
"NMinRecHits",2);
195 psd1.
add<
bool>(
"UseSubRecHits",
false);
196 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
197 psd1.
add<
double>(
"RescaleError", 100.0);
200 psd0.
add<
bool>(
"DoBackwardFilter",
true);
204 psd1.
add<
double>(
"NumberOfSigma", 3.0);
208 psd1.
add<
double>(
"MaxChi2", 100.0);
211 psd2.
add<
double>(
"MaxChi2", 25.0);
212 psd2.
add<
double>(
"RescaleErrorFactor", 100.0);
213 psd2.
add<
int>(
"Granularity", 0);
214 psd2.
add<
bool>(
"ExcludeRPCFromFit",
false);
215 psd2.
add<
bool>(
"UseInvalidHits",
true);
216 psd2.
add<
bool>(
"RescaleError",
false);
219 psd1.
add<
bool>(
"EnableRPCMeasurement",
true);
221 psd1.
add<
bool>(
"EnableDTMeasurement",
true);
223 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
224 psd1.
add<
bool>(
"EnableGEMMeasurement",
false);
226 psd1.
add<
bool>(
"EnableME0Measurement",
false);
228 psd1.
add<
bool>(
"EnableCSCMeasurement",
true);
231 psd0.
add<
bool>(
"DoSeedRefit",
false);
234 desc.
add<
bool>(
"DoSeedRefit",
false);
237 psd0.
add<
std::string>(
"Smoother",
"hltESPKFTrajectorySmootherForMuonTrackLoader");
238 psd0.
add<
bool>(
"DoSmoothing",
false);
242 psd1.
add<
double>(
"MaxChi2", 1000000.0);
243 psd1.
add<std::vector<double>>(
"BeamSpotPosition", {
248 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorOpposite");
249 psd1.
add<std::vector<double>>(
"BeamSpotPositionErrors", {
256 psd0.
add<
bool>(
"VertexConstraint",
true);
257 psd0.
add<
std::string>(
"TTRHBuilder",
"hltESPTTRHBWithTrackAngle");
261 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)