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
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)