56 virtual void endJob()
override;
84 qualitySimToReco_( iConfig.getParameter<double>(
"Quality_SimToReco" ) ),
85 puritySimToReco_( iConfig.getParameter<double>(
"Purity_SimToReco" ) ),
86 cutRecoToSim_( iConfig.getParameter<double>(
"Cut_RecoToSim" ) ),
87 threeHitTracksAreSpecial_( iConfig.getParameter<bool>(
"ThreeHitTracksAreSpecial" ) ),
88 useClusterTPAssociation_( iConfig.getParameter<bool>(
"useClusterTPAssociation" ) ),
89 absoluteNumberOfHits_( iConfig.getParameter<bool>(
"AbsoluteNumberOfHits" ) )
99 else throw cms::Exception(
"QuickTrackAssociatorByHitsImpl" ) <<
"SimToRecoDenominator not specified as sim or reco";
117 bool useGrouped, useSplitting;
118 if( iConfig.
exists(
"UseGrouped") ) useGrouped=iConfig.
getParameter<
bool>(
"UseGrouped");
119 else useGrouped=
true;
121 if( iConfig.
exists(
"UseSplitting") ) useSplitting=iConfig.
getParameter<
bool>(
"UseSplitting");
122 else useSplitting=
true;
126 if( !(useGrouped && useSplitting) )
128 LogDebug(
"QuickTrackAssociatorByHitsImpl") <<
"UseGrouped and/or UseSplitting has been set to false, but this associator ignores that setting.";
132 produces<reco::TrackToTrackingParticleAssociator>();
160 std::shared_ptr<ClusterTPAssociationList> clusterAssoc;
161 std::shared_ptr<TrackerHitAssociator> trackAssoc;
166 if(clusterAssocHandle.
isValid()) {
167 clusterAssoc = std::make_shared<ClusterTPAssociationList>(*clusterAssocHandle);
172 edm::LogInfo(
"TrackAssociator" ) <<
"ClusterTPAssociationList not found. Using DigiSimLink based associator";
175 if(not clusterAssoc) {
181 std::unique_ptr<reco::TrackToTrackingParticleAssociatorBaseImpl> impl(
T getParameter(std::string const &) const
bool absoluteNumberOfHits_
std::vector< std::pair< OmniClusterRef, TrackingParticleRef > > ClusterTPAssociationList
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
bool threeHitTracksAreSpecial_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
edm::ParameterSet hitAssociatorParameters_
QuickTrackAssociatorByHitsProducer(const edm::ParameterSet &)
void addDefault(ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
void addParameter(std::string const &name, T const &value)
edm::EDGetTokenT< ClusterTPAssociationList > cluster2TPToken_
~QuickTrackAssociatorByHitsProducer()
virtual void beginJob() override
bool clusterTPAssociationListGreater(std::pair< OmniClusterRef, TrackingParticleRef > i, std::pair< OmniClusterRef, TrackingParticleRef > j)
TrackToTrackingParticleAssociator that associates by hits a bit quicker than the normal TrackAssociat...
virtual void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
virtual void endJob() override
QuickTrackAssociatorByHitsImpl::SimToRecoDenomType simToRecoDenominator_
QuickTrackAssociatorByHitsImpl::ClusterTPAssociationList ClusterTPAssociationList
bool useClusterTPAssociation_