CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
PFCand_AssoMap Class Reference

#include <CommonTools/RecoUtils/plugins/PFCand_AssoMap.cc>

Inheritance diagram for PFCand_AssoMap:
edm::stream::EDProducer<> PFCand_AssoMapAlgos PF_PU_AssoMapAlgos

Public Member Functions

 PFCand_AssoMap (const edm::ParameterSet &)
 
 ~PFCand_AssoMap () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
- Public Member Functions inherited from PFCand_AssoMapAlgos
std::pair< std::unique_ptr< PFCandToVertexAssMap >, std::unique_ptr< VertexToPFCandAssMap > > createMappings (edm::Handle< reco::PFCandidateCollection > pfCandH)
 
std::unique_ptr< PFCandToVertexAssMapCreatePFCandToVertexMap (edm::Handle< reco::PFCandidateCollection >)
 
std::unique_ptr< VertexToPFCandAssMapCreateVertexToPFCandMap (edm::Handle< reco::PFCandidateCollection >)
 
void GetInputCollections (edm::Event &, const edm::EventSetup &) override
 
 PFCand_AssoMapAlgos (const edm::ParameterSet &, edm::ConsumesCollector &&)
 
std::unique_ptr< PFCandToVertexAssMapSortPFCandAssociationMap (PFCandToVertexAssMap *, edm::EDProductGetter const *getter)
 
- Public Member Functions inherited from PF_PU_AssoMapAlgos
std::pair< std::unique_ptr< TrackToVertexAssMap >, std::unique_ptr< VertexToTrackAssMap > > createMappings (edm::Handle< reco::TrackCollection > trkcollH)
 
std::unique_ptr< TrackToVertexAssMapCreateTrackToVertexMap (edm::Handle< reco::TrackCollection >)
 
std::unique_ptr< VertexToTrackAssMapCreateVertexToTrackMap (edm::Handle< reco::TrackCollection >)
 
 PF_PU_AssoMapAlgos (const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
 
 PF_PU_AssoMapAlgos (const edm::ParameterSet &, edm::ConsumesCollector &)
 
std::unique_ptr< TrackToVertexAssMapSortAssociationMap (TrackToVertexAssMap *, edm::Handle< reco::TrackCollection >)
 
template<typename TREF >
VertexRef TrackWeightAssociation (const TREF &trackRef, const std::vector< reco::VertexRef > &vtxcollV)
 
virtual ~PF_PU_AssoMapAlgos () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

edm::InputTag input_AssociationType_
 
edm::EDGetTokenT< reco::PFCandidateCollectiontoken_PFCandidates_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Member Functions inherited from PF_PU_AssoMapAlgos
std::vector< reco::VertexRefCreateVertexVector (edm::Handle< reco::VertexCollection >)
 
int DefineQuality (int, int, double)
 
void EraseVertex (std::vector< reco::VertexRef > &, reco::VertexRef)
 
VertexStepPair FindAssociation (const reco::TrackRef &, const std::vector< reco::VertexRef > &, edm::ESHandle< MagneticField >, edm::ESHandle< GlobalTrackingGeometry >, edm::Handle< reco::BeamSpot >, int)
 

Detailed Description

Description: Produces a map with association between pf candidates and their particular most probable vertex with a quality of this association

Definition at line 36 of file PFCand_AssoMap.h.

Constructor & Destructor Documentation

◆ PFCand_AssoMap()

PFCand_AssoMap::PFCand_AssoMap ( const edm::ParameterSet iConfig)
explicit

Definition at line 33 of file PFCand_AssoMap.cc.

References gather_cfg::cout, edm::ParameterSet::getParameter(), input_AssociationType_, edm::InputTag::label(), and token_PFCandidates_.

33  : PFCand_AssoMapAlgos(iConfig, consumesCollector()) {
34  //now do what ever other initialization is needed
35 
36  input_AssociationType_ = iConfig.getParameter<edm::InputTag>("AssociationType");
37 
39  consumes<reco::PFCandidateCollection>(iConfig.getParameter<edm::InputTag>("PFCandidateCollection"));
40 
41  //register your products
42 
43  if (input_AssociationType_.label() == "PFCandsToVertex") {
44  produces<PFCandToVertexAssMap>();
45  } else {
46  if (input_AssociationType_.label() == "VertexToPFCands") {
47  produces<VertexToPFCandAssMap>();
48  } else {
49  if (input_AssociationType_.label() == "Both") {
50  produces<PFCandToVertexAssMap>();
51  produces<VertexToPFCandAssMap>();
52  } else {
53  std::cout << "No correct InputTag for AssociationType!" << std::endl;
54  std::cout << "Won't produce any AssociationMap!" << std::endl;
55  }
56  }
57  }
58 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::string const & label() const
Definition: InputTag.h:36
edm::InputTag input_AssociationType_
edm::EDGetTokenT< reco::PFCandidateCollection > token_PFCandidates_
PFCand_AssoMapAlgos(const edm::ParameterSet &, edm::ConsumesCollector &&)

◆ ~PFCand_AssoMap()

PFCand_AssoMap::~PFCand_AssoMap ( )
override

Definition at line 60 of file PFCand_AssoMap.cc.

60 {}

Member Function Documentation

◆ fillDescriptions()

void PFCand_AssoMap::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 92 of file PFCand_AssoMap.cc.

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

92  {
93  //The following says we do not know what parameters are allowed so do no validation
94  // Please change this to state exactly what you do use, even if it is no parameters
96  desc.setUnknown();
97  descriptions.addDefault(desc);
98 }
void addDefault(ParameterSetDescription const &psetDescription)

◆ produce()

void PFCand_AssoMap::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 67 of file PFCand_AssoMap.cc.

References PFCand_AssoMapAlgos::createMappings(), PFCand_AssoMapAlgos::GetInputCollections(), iEvent, input_AssociationType_, edm::InputTag::label(), eostools::move(), PFCand_AssoMapAlgos::SortPFCandAssociationMap(), and token_PFCandidates_.

67  {
68  using namespace edm;
69  using namespace std;
70  using namespace reco;
71 
72  //get the input pfCandidateCollection
74  iEvent.getByToken(token_PFCandidates_, pfCandH);
75 
76  string asstype = input_AssociationType_.label();
77 
79 
80  if (asstype == "PFCandsToVertex" || asstype == "VertexToPFCands" || asstype == "Both") {
81  auto mappings = createMappings(pfCandH);
82  if (asstype == "PFCandsToVertex" || asstype == "Both") {
83  iEvent.put(SortPFCandAssociationMap(&(*mappings.first), &iEvent.productGetter()));
84  }
85  if (asstype == "VertexToPFCands" || asstype == "Both") {
86  iEvent.put(std::move(mappings.second));
87  }
88  }
89 }
void GetInputCollections(edm::Event &, const edm::EventSetup &) override
std::string const & label() const
Definition: InputTag.h:36
int iEvent
Definition: GenABIO.cc:224
edm::InputTag input_AssociationType_
edm::EDGetTokenT< reco::PFCandidateCollection > token_PFCandidates_
fixed size matrix
HLT enums.
std::unique_ptr< PFCandToVertexAssMap > SortPFCandAssociationMap(PFCandToVertexAssMap *, edm::EDProductGetter const *getter)
std::pair< std::unique_ptr< PFCandToVertexAssMap >, std::unique_ptr< VertexToPFCandAssMap > > createMappings(edm::Handle< reco::PFCandidateCollection > pfCandH)
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ input_AssociationType_

edm::InputTag PFCand_AssoMap::input_AssociationType_
private

Definition at line 48 of file PFCand_AssoMap.h.

Referenced by PFCand_AssoMap(), and produce().

◆ token_PFCandidates_

edm::EDGetTokenT<reco::PFCandidateCollection> PFCand_AssoMap::token_PFCandidates_
private

Definition at line 50 of file PFCand_AssoMap.h.

Referenced by PFCand_AssoMap(), and produce().