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>(
"EnableCSCMeasurement",
true);
190 psd1.
add<
std::string>(
"Fitter",
"hltESPKFFittingSmootherForL2Muon");
191 psd1.
add<
std::string>(
"MuonRecHitBuilder",
"hltESPMuonTransientTrackingRecHitBuilder");
192 psd1.
add<
unsigned int>(
"NMinRecHits",2);
193 psd1.
add<
bool>(
"UseSubRecHits",
false);
194 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
195 psd1.
add<
double>(
"RescaleError", 100.0);
198 psd0.
add<
bool>(
"DoBackwardFilter",
true);
202 psd1.
add<
double>(
"NumberOfSigma", 3.0);
206 psd1.
add<
double>(
"MaxChi2", 100.0);
209 psd2.
add<
double>(
"MaxChi2", 25.0);
210 psd2.
add<
double>(
"RescaleErrorFactor", 100.0);
211 psd2.
add<
int>(
"Granularity", 0);
212 psd2.
add<
bool>(
"ExcludeRPCFromFit",
false);
213 psd2.
add<
bool>(
"UseInvalidHits",
true);
214 psd2.
add<
bool>(
"RescaleError",
false);
217 psd1.
add<
bool>(
"EnableRPCMeasurement",
true);
219 psd1.
add<
bool>(
"EnableDTMeasurement",
true);
221 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorAny");
222 psd1.
add<
bool>(
"EnableGEMMeasurement",
false);
224 psd1.
add<
bool>(
"EnableCSCMeasurement",
true);
227 psd0.
add<
bool>(
"DoSeedRefit",
false);
230 desc.
add<
bool>(
"DoSeedRefit",
false);
233 psd0.
add<
std::string>(
"Smoother",
"hltESPKFTrajectorySmootherForMuonTrackLoader");
234 psd0.
add<
bool>(
"DoSmoothing",
false);
238 psd1.
add<
double>(
"MaxChi2", 1000000.0);
239 psd1.
add<std::vector<double>>(
"BeamSpotPosition", {
244 psd1.
add<
std::string>(
"Propagator",
"hltESPFastSteppingHelixPropagatorOpposite");
245 psd1.
add<std::vector<double>>(
"BeamSpotPositionErrors", {
252 psd0.
add<
bool>(
"VertexConstraint",
true);
253 psd0.
add<
std::string>(
"TTRHBuilder",
"hltESPTTRHBWithTrackAngle");
257 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
virtual void produce(edm::Event &, const edm::EventSetup &) override
reconstruct muons
ParameterDescriptionBase * add(U const &iLabel, T const &value)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
L2MuonProducer(const edm::ParameterSet &)
constructor with config
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
virtual ~L2MuonProducer()
destructor
ParameterSet const & parameterSet(Provenance const &provenance)